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 *