Obsługuję aplikację .NET, która została skompilowana na komputerze z zainstalowanym ArcGIS 10.1. Aplikacja zawiera interfejs użytkownika i rozszerzenie pulpitu ArcGIS, a także zestaw instalatora, który jest wywoływany przez Instalatora Windows w celu zarejestrowania rozszerzenia pulpitu podczas instalacji.
Problemem jest to, że aplikacja nie działa na komputerze z ArcGIS 10.2, ponieważ nie znaleziono zestawów ESRI 10.1, więc ulega awarii. Wygląda na to, że ponieważ ESRI wer. 9.3 nie dostarcza już plików zasad wydawcy, aby przekierować program w czasie wykonywania do najnowszych wersji.
Udało mi się przekierować program w celu załadowania zestawów 10.2, dodając powiązanie zestawu wykonawczego do pliku .exe.config aplikacji. Nie przekierowuje to jednak rozszerzenia pulpitu i nie rozwiąże problemu z instalatorem szukającym bibliotek 10.1 podczas instalowania aplikacji.
Wydaje się, że rozwiązaniem ESRI jest ponowna kompilacja aplikacji za każdym razem, gdy wydawana jest nowa wersja ArcGIS. Oznacza to jednak, że musiałbym mieć kopię każdej wersji ArcGIS, z której korzystają użytkownicy końcowi. I musiałbym odinstalowywać i ponownie instalować różne wersje za każdym razem, gdy muszę zmienić kod aplikacji, aby go ponownie skompilować.
Czy ktoś ma jakieś sugestie? Czy biblioteki można ładować dynamicznie w czasie wykonywania, aby uniknąć szukania określonej wersji? Czy jest jakieś inne rozwiązanie?
Najlepszym rozwiązaniem może być zmiana architektury projektu na dodatek ESRI. W ten sposób unikniesz zajmowania się Instalatorem Windows, który, jeśli dobrze rozumiem twoją architekturę, zajmuje się rejestrem systemu Windows.
Dodatki są znacznie prostsze, nie wymagają instalatorów specyficznych dla systemu Windows, są po prostu dostarczane jako specjalny plik .zip, który jest typem pliku .esriAddIn i są zalecane przez ESRI. Nie dotyczą one rejestru systemu Windows, tylko ESRI i instalują jednym kliknięciem pliku. Powinni lepiej egzekwować zmiany, które zasugerował Rich Wawrzonek.
Dodatkowo ESRI stwierdził ( patrz tutaj prezentacja ), że w głównych wersjach, tj. 10.x Dodatki są wstecznie kompatybilne, tj. 10.2 może używać dodatków 10.1 i 10.0, 10.1 może używać dodatków 10.0. Z zastrzeżeniem, że powinieneś być świadom, że rzeczy zostały usunięte lub zmienione w ArcObjects podczas przejścia.
Na przykład sygnatura metody dla metody OnContextMenu została zmieniona w 10.2 dla następujących interfejsów:
W zakresie przeprowadzek jedynymi przeprowadzkami w 10.2 były :
Reszta zmian została dodana funkcjonalność.
Aby odpowiedzieć na twoje pytanie w komentarzach poniżej, tak, to powinno zagwarantować, że nie będziesz musiał kompilować dla różnych wersji Arc (dopóki pozostaniesz w wersji 10.x). Kiedy przechodzą na 11, może to być inna historia. Jeśli chodzi o obsługę MapInfo, nie znam tego.
źródło