Estoy usando varias DLL de ESRI .NET en algunos scripts de Python personalizados. Por ejemplo ESRI.ArcGIS.Geodatabase.dll
En mi máquina de desarrollo, estas DLL se encuentran en la carpeta C: \ Archivos de programa (x86) \ ArcGIS \ DeveloperKit10.0 \ DotNet .
Ahora deseo implementar los scripts en otra máquina. Sin embargo, a menos que el usuario tenga instalado ArcObjects SDK for .NET, estas DLL faltan en su máquina.
Peor aún, solicitar que el usuario instale el SDK significa que también necesita instalar Visual Studio, que es una descarga de 600 MB (para la versión Express gratuita). Si no tienen Visual Studio, el instalador de ESRI no continuará.
Entonces, ¿deberían estas DLL estar agrupadas con los scripts (que pueden causar problemas de compatibilidad si se agregan paquetes de servicio), o hay un método de implementación más fácil?
Actualización :
Las DLL de .NET ahora están instaladas por defecto en la versión 10 de ArcGIS. Se colocan en el GAC (Caché de la Asamblea Global). Puede verlos en el Explorador de Windows (en Windows 7) en C:\Windows\assembly
(no es realmente una carpeta, pero puede ver lo que está en el GAC). Mirar las propiedades del ensamblaje indica que la 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 para .NET parece requerir ahora que use el nombre completo al agregar una referencia a estas DLL. Mirando su código fuente, parece que anteriormente usó LoadWithPartialName para que antes pueda usar el código a continuación. Esto ahora devuelve una excepción FileNotFound.
import clr
clr.AddReference("ESRI.ArcGIS.System")
from ESRI.ArcGIS.System import *
Ahora parece que necesita usar lo siguiente:
import clr
clr.AddReference("ESRI.ArcGIS.System, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86")
from ESRI.ArcGIS.System import *