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?
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:
Quanto às remoções, as únicas remoções na versão 10.2 eram :
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.
fonte