8 votos

La Implementación De ArcObject .NET Dll

Estoy usando varios ESRI .NET Dll en algunos personalizado secuencias de comandos de Python. Por ejemplo ESRI.ArcGIS.Geodatabase.dll

En mi máquina de desarrollo de estos archivos Dll están en la C:\Program Files (x86)\ArcGIS\DeveloperKit10.0\DotNet carpeta.

Ahora quiero implementar las secuencias de comandos para otra máquina. Sin embargo, a menos que el usuario tiene el SDK de ArcObjects .NET instalado estos archivos Dll que falta de su máquina.

Peor aún, solicitando que el usuario instale el SDK, lo que significa que también se necesita para instalar Visual Studio, que es un 600 MB descargar (para la libre versión Express). Si no tienen el Visual Studio de ESRI instalador de no continuar.

Así que estos archivos Dll debe estar envuelto con las secuencias de comandos (que puede causar problemas de compatibilidad si los paquetes de servicio), o es que hay un más fácil método de implementación?

Actualización:

El .NET Dll son ahora instalado por defecto en la versión 10 de ArcGIS. Se colocan en el GAC (Global Assembly Cache). Se les puede ver en el Explorador de Windows (en Windows 7) en C:\Windows\assembly (no es realmente una carpeta, pero no puede ver lo que está en la GAC). Mirando las propiedades de la asamblea indica que el archivo DLL debe estar en una carpeta como C:\Windows\assembly\GAC_32\ESRI.ArcGIS.System\10.0.0.0__8fc3cc631e44ad86\ESRI.ArcGIS.System.dll , pero este archivo no parece existir.

Python .NETA parece que ahora requieren que usted use el nombre completo cuando la adición de una referencia a estos archivos Dll. Mirando su código fuente se ve como anteriormente se utiliza LoadWithPartialName así que antes de que usted podría usar el siguiente código. Ahora, esto se vuelve un FileNotFound excepción.

import clr
clr.AddReference("ESRI.ArcGIS.System")
from ESRI.ArcGIS.System import *

Ahora parece que deben utilizar los siguientes:

import clr
clr.AddReference("ESRI.ArcGIS.System, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86")
from ESRI.ArcGIS.System import *

4voto

auramo Puntos 161

En 9.x, se puede instalar ArcGIS .RED de apoyo que IIRC incluido el .NET Pia, sin embargo en 10.0 tienes que instalar el SDK: http://support.esri.com/en/knowledgebase/techarticles/detail/34178 -- Ver @Petr respuesta, el .NET Pia se instala en la GAC cuando instala ArcGIS Desktop 10.

Según esta página, Visual Studio no es necesario para instalar el ArcObjects 10 SDK-pero eso NO es correcto ya que el instalador se niega a continuar sin un apoyo VS IDE instalado.

Si utiliza comtypes podría utilizar el COM OLBs en lugar de la .NET Pia. Por supuesto, usted todavía tiene que instalar comtypes o implementar con el script (no estoy seguro de cómo, pero creo que se puede hacer), sino que eliminaría el .NETO de la asamblea de la dependencia.

Ver también preguntas relacionadas con:

3voto

mleykamp Puntos 491

Usted no puede incluir la dll como es en contra de su acuerdo de licencia y que recientemente ha conseguido muy sniffy sobre ella. Usted necesita instalar AGS 10 .NETA, o de ArcObjects 10 .NET SDK, y, obviamente, de Visual Studio.

Acabamos de tener nuestro propio cuestiones en torno a la misma cuestión. Nos habían desplegado una .NETO de caja de herramientas en un AGS 10 de servidor de Java, con la dll envuelto. Trabajó un placer, hasta que nos dijeron que se violó nuestro acuerdo de licencia y tendríamos que comprar el de otros componentes o enfrentar las consecuencias.

Es como que apesta, pero hey ho. Significa 2 AGS 10 licencias para ellos, por lo que someones feliz...

3voto

Nathan Bedford Puntos 3157

Usted no necesita implementar ArcObjects Dll. Están instalados en la GAC, lo cual es cierto tanto para los clásicos .NET asambleas así como de ArcObjects Pia.

0voto

Isaac Solomon Puntos 16554

¿Por qué no utilizar el ArcGIS Engine Runtime? Es el tiempo de ejecución de independiente de ArcGIS/ArcObjects aplicaciones. Si tu no utilizar cualquier interfaz de usuario de Escritorio cosas en las secuencias de comandos se debe trabajar?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X