Estou usando várias DLLs do ESRI .NET em alguns scripts Python personalizados. Por exemplo ESRI.ArcGIS.Geodatabase.dll
Na minha máquina de desenvolvimento, essas DLLs estão na pasta C: \ Arquivos de Programas (x86) \ ArcGIS \ DeveloperKit10.0 \ DotNet .
Agora, desejo implantar os scripts em outra máquina. No entanto, a menos que o usuário tenha o ArcObjects SDK para .NET instalado, essas DLLs estão ausentes na máquina.
Pior ainda, solicitar que o usuário instale o SDK significa que ele também precisa instalar o Visual Studio, que é um download de 600 MB (para a versão gratuita do Express). Se eles não tiverem o Visual Studio, o instalador da ESRI não continuará.
Portanto, essas DLLs devem ser agrupadas com os scripts (que podem causar problemas de compatibilidade se forem adicionados service packs) ou existe um método de implantação mais fácil?
Atualização :
As DLLs do .NET agora estão instaladas por padrão na versão 10 do ArcGIS. Eles são colocados no GAC (Global Assembly Cache). Você pode vê-los no Windows Explorer (no Windows 7) em C:\Windows\assembly
(não é realmente uma pasta, mas é possível ver o que está no GAC). Examinar as propriedades do assembly indica que a DLL deve estar em uma pasta como, C:\Windows\assembly\GAC_32\ESRI.ArcGIS.System\10.0.0.0__8fc3cc631e44ad86\ESRI.ArcGIS.System.dll
mas esse arquivo parece não existir.
O Python para .NET parece exigir agora que você use o nome completo ao adicionar uma referência a essas DLLs. Observando o código fonte, parece que ele usou o LoadWithPartialName anteriormente para que você possa usar o código abaixo. Isso agora retorna uma exceção FileNotFound.
import clr
clr.AddReference("ESRI.ArcGIS.System")
from ESRI.ArcGIS.System import *
Agora parece que você precisa usar o seguinte:
import clr
clr.AddReference("ESRI.ArcGIS.System, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86")
from ESRI.ArcGIS.System import *