Запустіть програму ArcGIS 10.1 10.2


10

Я підтримую додаток .NET, який був складений на ПК із встановленим ArcGIS 10.1. Додаток включає користувальницький інтерфейс та розширення ArcGIS для настільних ПК, а також збірку інсталятора, яку викликає інсталятор Windows для реєстрації розширення робочого столу під час встановлення.

Проблема у мене полягає в тому, що додаток не працюватиме на ПК з ArcGIS 10.2, оскільки збірки 10.1 ESRI не знайдені, тому він виходить з ладу. Здається, що з v9.3 ESRI більше не постачає файли політики видавця, щоб перенаправляти програму під час виконання на останні версії.

Мені вдалося перенаправити програму для завантаження 10.2 збірок, додавши прив'язку збірки виконання в .exe.config програми. Однак це не перенаправляє розширення на робочий стіл і не вирішить проблему з інсталятором, який шукає бібліотеки 10.1 під час встановлення програми.

Рішення ESRI полягає в тому, щоб перекомпілювати додаток щоразу, коли виходить нова версія ArcGIS. Однак це означає, що мені потрібно мати копію кожного випуску ArcGIS, яким користуються кінцеві користувачі. І мені доведеться видаляти та перевстановлювати різні версії кожного разу, коли мені потрібно змінити код програми, щоб повторно його скласти.

Хтось має якісь пропозиції? Чи можуть бібліотеки завантажуватися динамічно під час виконання, щоб уникнути пошуку конкретної версії? Чи є якесь інше рішення?

Відповіді:


2

Встановіть посилання на ArcGIS у своєму проекті, щоб використовувати наступні властивості:

Copy Local = False
Specific Version = False

У більшості випадків це зробить вашу програму програмою сумісною, припускаючи, що ви не використовуєте жодних архівних об'єктів, які були застарілими або мають неполадки.


У мене вже є ці налаштування у Visual Studio. "Конкретна версія = Неправда" впливає лише на те, як Visual Studio завантажує посилання, а не після того, як програма буде створена та розгорнута.
Енді

2

Вам може бути найкращим чином змінити архітектуру проекту на надбудову ESRI. Таким чином ви уникнете спілкування з інсталятором Windows, який, якщо я правильно зрозумів вашу архітектуру, має справу з реєстром Windows.

Надбудови набагато простіші, не вимагають встановлення конкретних програм Windows, вони просто постачаються як спеціальний .zip-файл, що є файлом .esriAddIn, і є тим, що рекомендується ESRI. Вони не мають справу з реєстром Windows, лише ESRI та встановлюють одним клацанням файлу. Їм слід краще застосувати ті зміни, які запропонував Річ Ваврзонек.

Крім того, ESRI зазначив ( див. Тут презентацію ), що в основних версіях, тобто 10.x надбудови сумісні назад, тобто 10.2 може використовувати 10.1 та 10.0 надбудови, 10.1 може використовувати 10,0 надбудови. З застереженням, про яке ви повинні знати, якщо в ArcObjects речі були видалені або змінені під час переходу.

Наприклад, підпис методу для методу OnContextMenu змінено в 10.2 для таких інтерфейсів:

  • IDocumentEvents
  • IGxDocumentEvents
  • IGMxDocumentEvents
  • ISxDocumentEvents

Щодо видалень, то видаленнями лише у 10.2 були :

  • MaplexUI
    • MaplexExtension
    • MaplexExtensionClass

Решта змін були додані функціональні можливості.

Щоб відповісти на ваше запитання в коментарях нижче, так, це повинно гарантувати, що вам не доведеться компілювати для різних версій Arc (доки ви залишаєтесь у 10.x). Коли вони переходять на 11, це може бути інша історія. Що стосується підтримки MapInfo, я з цим не знайомий.


Дякую за пропозицію, але у мене є дві думки: 1. Чи гарантує це вирішення проблеми версій DLL чи все-таки надбудову потрібно буде перекомпілювати для кожної версії ArcGIS? Проблема не в інсталяторі чи реєстрі - проблема полягає в тому, що ESRI більше не надає файлам політики видавців нові випуски. 2. Моя програма не тільки для ArcGIS, вона також працює з MapInfo. Тож основна частина програми - це окремий інтерфейс, і лише незначна частина коду стосується ArcGIS або MapInfo.
Енді

Енді дивись доповнення до моєї відповіді, щоб вирішити ваші проблеми.
GeoSharp
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.