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 *
fonte
Na 9.x, você pode instalar o ArcGIS com suporte ao .NET, o qual o IIRC incluiu os PIAs do .NET.
No entanto,na 10.0, é necessário instalar o SDK:http://support.esri.com/en/knowledgebase/techarticles/detail/34178- Consulte a resposta de @ Petr , os PIAs .NET são instalados no GAC quando você instala o ArcGIS Desktop 10 .De acordo com esta página , o Visual Studio não é necessário para instalar o ArcObjects 10 SDK - mas isso NÃO está correto, pois o instalador se recusa a continuar sem um VS IDE suportado instalado.
Se você usar comtypes, poderá usar os OLBs COM em vez dos PIAs .NET. É claro que você ainda teria que instalar comtypes ou implantá-lo com seu script (não sei como, mas acho que pode ser feito), mas eliminaria a dependência do assembly .NET.
Veja também perguntas relacionadas:
fonte
Você não pode agrupar as DLLs, pois isso é contra o seu contrato de licenciamento, e eles recentemente ficaram muito animados com isso. Você precisa instalar o AGS 10 .NET ou ArcObjects 10 .NET SDK e, obviamente, o Visual Studio.
Acabamos de ter nossos próprios problemas em torno do mesmo problema. Implantamos uma caixa de ferramentas .NET em um servidor Java AGS 10, com as DLLs agrupadas. Trabalhou um tratamento, até que fomos informados de que ele violava nosso contrato de licenciamento e teríamos que comprar os outros componentes ou enfrentar as consequências.
Isso meio que fede, mas ei ho. Significa 2 licenças AGS 10 para eles, para que alguém fique feliz ...
fonte
Por que não usar o ArcGIS Engine Runtime ? É o tempo de execução para aplicativos independentes do ArcGIS / ArcObjects. Se você não estiver usando nenhum material da interface do usuário da área de trabalho em seus scripts, deve funcionar?
fonte