Saya telah mengembangkan Add-in ArcMap yang membutuhkan file konfigurasi. Setelah menghabiskan beberapa saat mencoba membaca nilai konfigurasi dari file App.Config tunggal (dan selalu mendapatkan nol) Saya percaya bahwa Add-in tidak dapat membaca nilai dari sini karena ini adalah perpustakaan kelas, dan mencari aplikasi panggilan (ArcMap) File konfigurasi ketika saya meminta nilai kunci (karenanya nol).
Untuk menyiasati ini saya menggunakan file App.Settings, yang dapat dibaca aplikasi dengan baik. Membuat ini juga memperkenalkan file App.Config ke lingkungan dan Visual Studio tampaknya menjaga dua file tetap sinkron selama pengembangan.
Sekarang Add-in sedang digunakan saya harus dapat mengubah nilai-nilai konfigurasi (misalnya lokasi file log). Saya telah mencoba membuka / mengekstrak file .esriaddin dan memperbarui file App.Config di sana tetapi Add-in mempertahankan nilai konfigurasi yang sama ketika dikompilasi. Saya tahu bahwa nilai-nilai App.Config baru sedang dipertahankan dalam file .esriaddin karena saya dapat melihatnya lagi setelah menutup arsip.
Adakah yang tahu cara tepercaya untuk mengonfigurasi Add-in dan mengizinkan konfigurasi ini dapat diperbarui setelah digunakan? Setiap saran sangat diterima karena tampaknya konyol bahwa saya harus memerlukan file konfigurasi khusus untuk ini.
Nilai App.Settings berada pada level aplikasi, dan saat ini App.Settings dan App.Config memiliki action build: tidak ada / tidak menyalin.
sumber
Meminjam dari jawaban yang serupa , Anda dapat menggunakan ini di addin Anda:
sumber
this.GetType().Assembly.Location + ".config"
File konfigurasi .NET standar adalah per aplikasi, bukan per perpustakaan. Ini berarti bahwa ketika addin Anda berjalan dalam proses ArcMap, pengaturan konfigurasi Anda harus ditentukan dalam ArcMap.exe.config yang perlu ditempatkan di samping ArcMap.exe.
Ini tentu saja tidak selalu memungkinkan dalam lingkungan produksi dan juga melanggar isolasi addins, yang merupakan salah satu alasan addins diperkenalkan di tempat pertama.
Anda perlu menyimpan pengaturan Anda secara berbeda, baik dalam file konfigurasi Anda sendiri (seperti yang ditunjukkan dalam jawaban Kirk) atau registri sistem.
Anda dapat memantau perubahan pada file konfigurasi Anda dengan berbagai cara, misalnya memanfaatkan kelas FileSystemWatcher .
sumber
The jawaban dengan Kirk Kuykendall tidak bekerja untuk saya, karena terus menunjuk ke .dll itu sendiri. Saya menggunakan berikut ini untuk menunjuk ke file konfigurasi
sumber
Sementara saya belum melihat model baru untuk ESRI Addin apa yang telah saya lakukan dan lihat dilakukan oleh orang lain adalah pengguna UserHive dalam registri. Anda kemudian dapat memiliki layar di addin Anda untuk memperbarui kaleng nilai yang Anda butuhkan.
Menggunakan file App.config cenderung mengharuskan Anda me-restart aplikasi / ekstensi sepenuhnya untuk membaca nilai-nilai baru; sementara itu lebih mudah untuk melakukan pembaruan on-the-fly dari registri.
sumber
Anda bisa mencoba memodifikasi salinan file konfigurasi yang terletak di cache Add-In Assembly . Saya percaya esriaddin hanya bisa diperluas satu kali oleh ArcGIS. Jadi modifikasi selanjutnya tidak boleh digunakan (meskipun harus memperhatikan bahwa file esriaddin lebih baru dari cache-nya).
Vista / 7: C: \ Users \\ AppData \ Local \ ESRI \ Desktop10.0 \ AssemblyCache
XP: C: \ Documents and Settings \\ Local Settings \ Data Aplikasi \ ESRI \ Desktop10.0 \ AssemblyCache
sumber