Exécutez l'application ArcGIS 10.1 sur 10.2

10

Je prends en charge une application .NET qui a été compilée sur un PC avec ArcGIS 10.1 installé. L'application comprend une interface utilisateur et une extension de bureau ArcGIS, ainsi qu'un ensemble d'installation qui est appelé par Windows Installer pour enregistrer l'extension de bureau pendant l'installation.

Le problème que j'ai est que l'application ne fonctionnera pas sur un PC avec ArcGIS 10.2 parce que les assemblys ESRI 10.1 ne sont pas trouvés et se bloquent. Il semble que depuis la v9.3, ESRI ne fournit plus de fichiers de stratégie d'éditeur pour rediriger le programme au moment de l'exécution vers les dernières versions.

J'ai réussi à rediriger le programme pour charger les assemblys 10.2 en ajoutant une liaison d'assembly d'exécution dans le fichier .exe.config de l'application. Cependant, cela ne redirige pas l'extension de bureau et ne résoudra pas le problème avec le programme d'installation à la recherche des bibliothèques 10.1 lors de l'installation de l'application.

La solution d'ESRI semble être de recompiler l'application chaque fois qu'une nouvelle version d'ArcGIS est publiée. Cependant, cela signifie que je devrais avoir une copie de chaque version d'ArcGIS que les utilisateurs finaux utilisent. Et je devrais désinstaller et réinstaller différentes versions chaque fois que je dois changer le code d'application afin de le recompiler.

Est-ce que quelqu'un a des suggestions? Les bibliothèques peuvent-elles être chargées dynamiquement lors de l'exécution pour éviter de rechercher une version spécifique? N 'y a-t-il pas une autre solution?

Andy
la source

Réponses:

2

Définissez les références ArcGIS dans votre projet pour utiliser les propriétés suivantes:

Copy Local = False
Specific Version = False

Dans la plupart des cas, cela rendra votre programme compatible en supposant que vous n'utilisez pas d'arcobjects obsolètes ou ayant des changements de rupture.

Rich Wawrzonek
la source
J'ai déjà ces paramètres dans Visual Studio. 'Specific Version = False' affecte uniquement la façon dont Visual Studio charge les références, pas une fois qu'une application est créée et déployée.
Andy
2

Il peut être préférable pour vous de changer votre architecture de projet en un complément ESRI. De cette façon, vous éviterez de traiter avec Windows Installer qui, si je comprends bien, votre architecture traite avec le registre Windows.

Les compléments sont beaucoup plus simples, ne nécessitent pas d'installateurs spécifiques à Windows, ils sont simplement livrés sous forme de fichier .zip spécial qui est le type de fichier .esriAddIn et sont ceux recommandés par ESRI. Ceux-ci ne traitent pas du registre Windows, seulement ESRI et s'installent en un clic du fichier. Ils devraient mieux appliquer les changements suggérés par Rich Wawrzonek.

De plus, ESRI a déclaré ( voir dans la présentation ici ) que dans les versions principales, c'est-à-dire que les compléments 10.x sont rétrocompatibles, c'est-à-dire que 10.2 peut utiliser les compléments 10.1 et 10.0, 10.1 peut utiliser les compléments 10.0. Avec la mise en garde que vous devez savoir si des éléments ont été supprimés ou modifiés dans ArcObjects lors de la transition.

Par exemple, la signature de méthode pour la méthode OnContextMenu a été modifiée dans 10.2 pour les interfaces suivantes:

  • IDocumentEvents
  • IGxDocumentEvents
  • IGMxDocumentEvents
  • ISxDocumentEvents

En ce qui concerne les suppressions, les seules suppressions en 10.2 étaient :

  • MaplexUI
    • MaplexExtension
    • MaplexExtensionClass

Le reste des modifications ont été des fonctionnalités ajoutées.

Pour répondre à votre question dans les commentaires ci-dessous, Oui, cela devrait garantir que vous n'avez pas à compiler pour différentes versions d'Arc (tant que vous restez dans 10.x). Quand ils passeront à 11, cela peut être une autre histoire. En ce qui concerne MapInfo, je ne suis pas familier avec cela.

GeoSharp
la source
Merci pour la suggestion, mais j'ai deux réflexions: 1. Cette garantie permet-elle de contourner le problème des versions de DLL ou le complément doit-il encore être recompilé pour chaque version d'ArcGIS? Le problème ne vient pas du programme d'installation ou du registre - le problème est qu'ESRI ne fournit plus de fichiers de stratégie d'éditeur avec les nouvelles versions. 2. Mon application n'est pas seulement pour ArcGIS, elle fonctionne également avec MapInfo. Ainsi, l'essentiel de l'application est une interface autonome et seule une petite partie du code se rapporte à ArcGIS ou MapInfo.
Andy
Andy voit les ajouts à ma réponse pour répondre à vos préoccupations.
GeoSharp