Jalankan aplikasi ArcGIS 10.1 pada 10.2

10

Saya mendukung aplikasi .NET yang telah dikompilasi di PC dengan ArcGIS 10.1 diinstal. Aplikasi ini terdiri atas antarmuka pengguna dan ekstensi desktop ArcGIS, plus unit penginstal yang dipanggil oleh Penginstal Windows untuk mendaftarkan ekstensi desktop selama penginstalan.

Masalah yang saya miliki adalah bahwa aplikasi tidak akan berjalan pada PC dengan ArcGIS 10.2 karena 10.1 ESRI rakitan tidak ditemukan sehingga crash. Tampaknya sejak v9.3 ESRI tidak lagi menyediakan file kebijakan penerbit lagi untuk mengarahkan ulang program saat runtime ke versi terbaru.

Saya telah berhasil mengarahkan ulang program untuk memuat 10.2 majelis dengan menambahkan perakitan runtime yang mengikat ke dalam aplikasi .exe.config. Namun, ini tidak mengarahkan ulang ekstensi desktop dan tidak akan menyelesaikan masalah dengan penginstal yang mencari pustaka 10.1 saat menginstal aplikasi.

Solusi ESRI tampaknya mengkompilasi ulang aplikasi setiap kali ArcGIS versi baru dirilis. Namun, ini berarti saya harus memiliki salinan setiap rilis ArcGIS yang digunakan pengguna akhir. Dan saya harus menghapus dan menginstal ulang versi yang berbeda setiap kali saya perlu mengubah kode aplikasi untuk mengkompilasi ulang.

Adakah yang punya saran? Dapatkah perpustakaan dimuat secara dinamis saat runtime untuk menghindari mencari versi tertentu? Apakah ada solusi lain?

Andy
sumber

Jawaban:

2

Atur referensi ArcGIS di proyek Anda untuk menggunakan properti berikut:

Copy Local = False
Specific Version = False

Dalam kebanyakan kasus ini akan membuat program Anda maju yang kompatibel dengan asumsi Anda tidak menggunakan arcobjects yang sudah usang atau telah melanggar perubahan.

Wawrzonek yang kaya
sumber
Saya sudah memiliki pengaturan ini di Visual Studio. 'Versi Khusus = Salah' hanya memengaruhi bagaimana Visual Studio memuat referensi, tidak setelah aplikasi dibuat dan digunakan.
Andy
2

Mungkin yang terbaik bagi Anda untuk mengubah arsitektur proyek Anda menjadi Add-In ESRI. Dengan begitu Anda akan terhindar dari berurusan dengan Windows Installer itu, jika saya mengerti arsitektur Anda dengan benar berhadapan dengan registry windows.

Add-in jauh lebih mudah, tidak memerlukan installer khusus windows, mereka hanya dikirim sebagai file .zip khusus yang merupakan tipe file .esriAddIn, dan direkomendasikan oleh ESRI. Ini tidak berurusan dengan registri windows, hanya ESRI dan instal dengan satu klik file. Mereka harus lebih menegakkan perubahan yang disarankan Rich Wawrzonek.

Selain itu ESRI telah menyatakan ( lihat dalam presentasi di sini ) bahwa dalam versi utama yaitu 10.x Add-In kompatibel dengan versi sebelumnya, yaitu 10.2 dapat menggunakan 10.1 dan 10.0 Add-Ins, 10.1 dapat menggunakan 10.0 Add-In. Dengan peringatan yang harus Anda ketahui jika ada yang dihapus atau diubah di ArcObjects saat transisi.

Misalnya tanda tangan metode untuk metode OnContextMenu telah diubah di 10.2 untuk antarmuka berikut:

  • Acara IDocument
  • IGxDocumentEvents
  • IGMxDocumentEvents
  • ISxDocumentEvents

Sejauh pemindahan satu-satunya penghapusan di 10.2 adalah :

  • MaplexUI
    • MaplexExtension
    • MaplexExtensionClass

Perubahan lainnya ditambahkan fungsi.

Untuk menjawab pertanyaan Anda di komentar di bawah, Ya ini harus menjamin bahwa Anda tidak harus mengkompilasi untuk versi Arc yang berbeda (selama Anda tetap di 10.x). Ketika mereka beralih ke 11, ini mungkin cerita yang berbeda. Sejauh mendukung MapInfo, saya tidak terbiasa dengan ini.

GeoSharp
sumber
Terima kasih atas sarannya tetapi saya memiliki dua pemikiran: 1. Apakah jaminan ini untuk menyelesaikan masalah versi DLL atau apakah add-in masih perlu dikompilasi ulang untuk setiap versi ArcGIS? Masalahnya bukan pada installer atau registry - masalahnya adalah bahwa ESRI tidak lagi menyediakan file kebijakan penerbit dengan rilis baru. 2. Aplikasi saya tidak hanya untuk ArcGIS, tetapi juga berfungsi dengan MapInfo. Jadi sebagian besar aplikasi adalah antarmuka mandiri dan hanya sebagian kecil dari kode yang terkait dengan ArcGIS atau MapInfo.
Andy
Andy melihat tambahan pada jawaban saya untuk mengatasi masalah Anda.
GeoSharp