Ejecute la aplicación ArcGIS 10.1 en 10.2

10

Apoyo una aplicación .NET que se ha compilado en una PC con ArcGIS 10.1 instalado. La aplicación consta de una interfaz de usuario y una extensión de escritorio ArcGIS, más un ensamblaje de instalador que Windows Installer llama para registrar la extensión de escritorio durante la instalación.

El problema que tengo es que la aplicación no se ejecutará en una PC con ArcGIS 10.2 porque no se encuentran los ensamblados ESRI 10.1, por lo que se bloquea. Parece que desde v9.3 ESRI ya no suministra archivos de políticas de editor para redirigir el programa en tiempo de ejecución a las últimas versiones.

He logrado redirigir el programa para cargar los ensamblajes 10.2 agregando el enlace de ensamblaje en tiempo de ejecución en el archivo .exe.config de la aplicación. Sin embargo, esto no redirige la extensión del escritorio y no resolverá el problema con el instalador que busca las bibliotecas 10.1 al instalar la aplicación.

La solución de ESRI parece ser volver a compilar la aplicación cada vez que se lanza una nueva versión de ArcGIS. Sin embargo, esto significa que necesitaría tener una copia de cada versión de ArcGIS que usan los usuarios finales. Y tendría que desinstalar y volver a instalar diferentes versiones cada vez que necesite cambiar el código de la aplicación para volver a compilarlo.

¿Alguien tiene alguna sugerencia? ¿Se pueden cargar las bibliotecas dinámicamente en tiempo de ejecución para evitar buscar una versión específica? hay alguna otra solucion?

Andy
fuente

Respuestas:

2

Establezca las referencias de ArcGIS en su proyecto para usar las siguientes propiedades:

Copy Local = False
Specific Version = False

En la mayoría de los casos, esto hará que su programa sea compatible con el futuro, suponiendo que no esté utilizando ningún objeto de arco que haya quedado obsoleto o tenga cambios importantes.

Rich Wawrzonek
fuente
Ya tengo esta configuración en Visual Studio. 'Versión específica = Falso' solo afecta la forma en que Visual Studio carga las referencias, no una vez que se crea y se implementa una aplicación.
Andy
2

Puede ser mejor para usted cambiar la arquitectura de su proyecto a un complemento ESRI. De esta forma evitará tratar con el instalador de Windows que, si entiendo que su arquitectura está tratando correctamente con el registro de Windows.

Los complementos son mucho más sencillos, no requieren instaladores específicos de Windows, solo se envían como un archivo .zip especial que es el tipo de archivo .esriAddIn, y son los recomendados por ESRI. Estos no tratan con el registro de Windows, solo ESRI e instalan con un solo clic del archivo. Deberían aplicar mejor los cambios que Rich Wawrzonek ha sugerido.

Además, ESRI ha declarado ( ver en la presentación aquí ) que dentro de las versiones principales, es decir, los complementos 10.x son compatibles con versiones anteriores, es decir, 10.2 puede usar los complementos 10.1 y 10.0, 10.1 puede usar los complementos 10.0. Con la advertencia de que debe tener en cuenta si las cosas se han eliminado o cambiado en ArcObjects durante la transición.

Por ejemplo, la firma del método para el método OnContextMenu se ha cambiado en 10.2 para las siguientes interfaces:

  • IDocumentEvents
  • IGxDocumentEvents
  • IGMxDocumentEvents
  • ISxDocumentEvents

En cuanto a las eliminaciones, las únicas eliminaciones en 10.2 fueron :

  • MaplexUI
    • Extensión Maplex
    • MaplexExtensionClass

Al resto de los cambios se les agregó funcionalidad.

Para responder a su pregunta en los comentarios a continuación, Sí, esto debería garantizar que no tenga que compilar para diferentes versiones de Arc (siempre y cuando permanezca en 10.x). Cuando hacen el cambio a 11, esta puede ser una historia diferente. En cuanto a admitir MapInfo, no estoy familiarizado con esto.

GeoSharp
fuente
Gracias por la sugerencia, pero tengo dos pensamientos: 1. ¿Esto garantiza evitar el problema de las versiones de DLL o aún será necesario volver a compilar el complemento para cada versión de ArcGIS? El problema no es con el instalador o el registro; el problema es que ESRI ya no proporciona archivos de políticas de editor con nuevas versiones. 2. Mi aplicación no es solo para ArcGIS, también funciona con MapInfo. Por lo tanto, la mayor parte de la aplicación es una interfaz independiente y solo una pequeña parte del código se relaciona con ArcGIS o MapInfo.
Andy
Andy ve las adiciones a mi respuesta para abordar sus inquietudes.
GeoSharp