Execute o aplicativo ArcGIS 10.1 na versão 10.2


10

Eu apoio um aplicativo .NET que foi compilado em um PC com o ArcGIS 10.1 instalado. O aplicativo compreende uma interface do usuário e uma extensão da área de trabalho do ArcGIS, além de um conjunto de instalador chamado pelo Windows Installer para registrar a extensão da área de trabalho durante a instalação.

O problema que tenho é que o aplicativo não será executado em um PC com ArcGIS 10.2 porque os assemblies 10.1 ESRI não foram encontrados e, portanto, travam. Parece que desde a v9.3 ESRI não fornecemos mais arquivos de política do editor para redirecionar o programa em tempo de execução para as versões mais recentes.

Eu consegui redirecionar o programa para carregar os assemblies 10.2 adicionando a ligação de assembly de tempo de execução ao arquivo .exe.config do aplicativo. No entanto, isso não redireciona a extensão da área de trabalho e não resolve o problema com o instalador que procura as bibliotecas 10.1 ao instalar o aplicativo.

A solução da ESRI parece ser recompilar o aplicativo toda vez que uma nova versão do ArcGIS for lançada. No entanto, isso significa que eu precisaria ter uma cópia de cada versão do ArcGIS que os usuários finais estejam usando. E eu teria que desinstalar e reinstalar versões diferentes toda vez que precisar alterar o código do aplicativo para recompilá-lo.

Alguém tem alguma sugestão? As bibliotecas podem ser carregadas dinamicamente em tempo de execução para evitar a procura de uma versão específica? existe alguma outra solução?

Respostas:


2

Defina as referências do ArcGIS no seu projeto para usar as seguintes propriedades:

Copy Local = False
Specific Version = False

Na maioria dos casos, isso tornará o seu programa compatível, desde que você não esteja usando nenhum objeto que foi descontinuado ou que possui alterações.


Eu já tenho essas configurações no Visual Studio. 'Versão específica = Falso' afeta apenas como o Visual Studio carrega as referências, não depois que um aplicativo é criado e implantado.
Andy

2

Pode ser melhor você alterar a arquitetura do seu projeto para um suplemento ESRI. Dessa forma, você evitará lidar com o Windows Installer que, se eu entendi corretamente, sua arquitetura está lidando com o registro do Windows.

Os suplementos são muito mais simples, não exigem instaladores específicos do Windows, são enviados apenas como um arquivo .zip especial, que é o tipo de arquivo .esriAddIn, e são os recomendados pela ESRI. Eles não lidam com o registro do Windows, apenas o ESRI e instalam com um clique no arquivo. Eles devem aplicar melhor as mudanças sugeridas por Rich Wawrzonek.

Além disso, a ESRI declarou ( veja na apresentação aqui ) que nas versões principais, por exemplo, os suplementos 10.x são compatíveis com versões anteriores, ou seja, 10.2 pode usar os suplementos 10.1 e 10.0, 10.1 pode usar os suplementos 10.0. Com a ressalva de que você deve estar ciente se as coisas foram removidas ou alteradas no ArcObjects durante a transição.

Por exemplo, a assinatura do método OnContextMenu foi alterada na 10.2 para as seguintes interfaces:

  • IDocumentEvents
  • IGxDocumentEvents
  • IGMxDocumentEvents
  • ISxDocumentEvents

Quanto às remoções, as únicas remoções na versão 10.2 eram :

  • MaplexUI
    • MaplexExtension
    • MaplexExtensionClass

O restante das alterações foram adicionadas funcionalidade.

Para responder sua pergunta nos comentários abaixo, Sim, isso deve garantir que você não precise compilar para versões diferentes do Arc (desde que você permaneça na versão 10.x). Quando eles mudam para 11, isso pode ser uma história diferente. Quanto ao suporte ao MapInfo, não estou familiarizado com isso.


Obrigado pela sugestão, mas tenho duas idéias: 1. Isso garante contornar o problema das versões DLL ou o suplemento ainda precisará ser recompilado para cada versão do ArcGIS? O problema não está no instalador ou no registro - o problema é que a ESRI não fornece mais arquivos de política do editor com novos lançamentos. 2. Meu aplicativo não é apenas para ArcGIS, mas também funciona com o MapInfo. Portanto, a maior parte do aplicativo é uma interface independente e apenas uma pequena parte do código está relacionada ao ArcGIS ou MapInfo.
Andy

Andy vê as adições à minha resposta para responder às suas preocupações.
GeoSharp 29/08/14
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.