Saya menggunakan beberapa ESRI .NET DLL di beberapa skrip Python khusus. Misalnya ESRI.ArcGIS.Geodatabase.dll
Di mesin pengembangan saya, DLL ini ada di folder C: \ Program Files (x86) \ ArcGIS \ DeveloperKit10.0 \ DotNet .
Sekarang saya ingin menyebarkan skrip ke komputer lain. Namun, kecuali jika pengguna memiliki ArcObjects SDK untuk .NET yang terpasang, DLL ini tidak ada di mesin mereka.
Lebih buruk lagi, meminta pengguna menginstal SDK, berarti mereka juga perlu menginstal Visual Studio, yang merupakan unduhan 600MB (untuk versi Express gratis). Jika mereka tidak memiliki Visual Studio penginstal ESRI tidak akan melanjutkan.
Jadi haruskah DLL ini dibundel dengan skrip (yang dapat menyebabkan masalah kompatibilitas jika paket layanan ditambahkan), atau adakah metode penyebaran yang lebih mudah?
Perbarui :
DLL NET sekarang diinstal secara default di versi 10 dari ArcGIS. Mereka ditempatkan di GAC (Global Assembly Cache). Anda dapat melihatnya di Windows Explorer (di Windows 7) di C:\Windows\assembly
(tidak benar-benar folder, tetapi Anda dapat melihat apa yang ada di GAC). Melihat properti rakitan menunjukkan DLL harus berada dalam folder seperti C:\Windows\assembly\GAC_32\ESRI.ArcGIS.System\10.0.0.0__8fc3cc631e44ad86\ESRI.ArcGIS.System.dll
tetapi file ini sepertinya tidak ada.
Python untuk .NET tampaknya sekarang mengharuskan Anda menggunakan nama lengkap saat menambahkan referensi ke DLL ini. Melihat kode sumbernya, sepertinya itu sebelumnya menggunakan LoadWithPartialName sehingga Anda sebelum Anda dapat menggunakan kode di bawah ini. Ini sekarang mengembalikan pengecualian FileNotFound.
import clr
clr.AddReference("ESRI.ArcGIS.System")
from ESRI.ArcGIS.System import *
Sekarang sepertinya Anda perlu menggunakan yang berikut ini:
import clr
clr.AddReference("ESRI.ArcGIS.System, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86")
from ESRI.ArcGIS.System import *