Esegui l'applicazione ArcGIS 10.1 su 10.2


10

Supporto un'applicazione .NET che è stata compilata su un PC con ArcGIS 10.1 installato. L'applicazione comprende un'interfaccia utente e un'estensione desktop ArcGIS, oltre a un assembly di installazione chiamato da Windows Installer per registrare l'estensione desktop durante l'installazione.

Il problema che ho è che l'applicazione non funzionerà su un PC con ArcGIS 10.2 perché gli assembly ESRI 10.1 non sono stati trovati, quindi si blocca. Sembra che dalla v9.3 ESRI non fornisca più file dei criteri del publisher per reindirizzare il programma in fase di esecuzione alle ultime versioni.

Sono riuscito a reindirizzare il programma per caricare gli assembly 10.2 aggiungendo l'associazione degli assembly di runtime nel file .exe.config dell'applicazione. Tuttavia, ciò non reindirizza l'estensione del desktop e non risolverà il problema con il programma di installazione che cerca le librerie 10.1 durante l'installazione dell'applicazione.

La soluzione di ESRI sembra essere quella di ricompilare l'applicazione ogni volta che viene rilasciata una nuova versione di ArcGIS. Tuttavia, ciò significa che avrei bisogno di avere una copia di ogni versione di ArcGIS utilizzata dagli utenti finali. E dovrei disinstallare e reinstallare versioni diverse ogni volta che devo cambiare il codice dell'applicazione per ricompilarlo.

Qualcuno ha qualche suggerimento? Le librerie possono essere caricate dinamicamente in fase di esecuzione per evitare la ricerca di una versione specifica? c'è un'altra soluzione?

Risposte:


2

Impostare i riferimenti ArcGIS nel progetto per utilizzare le seguenti proprietà:

Copy Local = False
Specific Version = False

Nella maggior parte dei casi, questo renderà il tuo programma compatibile in avanti supponendo che tu non stia usando oggetti arco che sono stati deprecati o che hanno subito modifiche.


Ho già queste impostazioni in Visual Studio. 'Versione specifica = Falso' influenza solo il modo in cui Visual Studio carica i riferimenti, non una volta che un'applicazione è stata creata e distribuita.
Andy,

2

Potrebbe essere meglio cambiare l'architettura del progetto in un componente aggiuntivo ESRI. In questo modo eviterai di occuparti di Windows Installer che, se ho capito bene la tua architettura, si occupa del registro di Windows.

I componenti aggiuntivi sono molto più semplici, non richiedono programmi di installazione specifici di Windows, vengono semplicemente spediti come file .zip speciale che è il tipo di file .esriAddIn e sono quelli raccomandati da ESRI. Questi non si occupano del registro di Windows, solo ESRI e si installano con un clic del file. Dovrebbero applicare meglio le modifiche suggerite da Rich Wawrzonek.

Inoltre ESRI ha dichiarato ( vedere nella presentazione qui ) che all'interno delle versioni principali, vale a dire i componenti aggiuntivi 10.x sono retrocompatibili, ovvero 10.2 può utilizzare i componenti aggiuntivi 10.1 e 10.0, 10.1 può utilizzare i componenti aggiuntivi 10.0. Con l'avvertenza che dovresti essere consapevole se le cose sono state rimosse o modificate in ArcObjects durante la transizione.

Ad esempio, la firma del metodo per il metodo OnContextMenu è stata modificata in 10.2 per le seguenti interfacce:

  • IDocumentEvents
  • IGxDocumentEvents
  • IGMxDocumentEvents
  • ISxDocumentEvents

Per quanto riguarda le rimozioni, le uniche rimozioni in 10.2 erano :

  • MaplexUI
    • MaplexExtension
    • MaplexExtensionClass

Il resto delle modifiche sono state aggiunte funzionalità.

Per rispondere alla tua domanda nei commenti seguenti, Sì, questo dovrebbe garantire che non è necessario compilare per versioni diverse di Arc (purché rimanga in 10.x). Quando fanno il passaggio a 11 questa potrebbe essere una storia diversa. Per quanto riguarda il supporto di MapInfo, non ho familiarità con questo.


Grazie per il suggerimento, ma ho due pensieri: 1. Ciò garantisce di aggirare il problema delle versioni DLL o il componente aggiuntivo dovrà ancora essere ricompilato per ogni versione di ArcGIS? Il problema non riguarda il programma di installazione o il registro: il problema è che ESRI non fornisce più file dei criteri del publisher con nuove versioni. 2. La mia applicazione non è solo per ArcGIS, ma funziona anche con MapInfo. Quindi la maggior parte dell'applicazione è un'interfaccia autonoma e solo una piccola parte del codice si riferisce ad ArcGIS o MapInfo.
Andy,

Andy vede le aggiunte alla mia risposta per rispondere alle tue preoccupazioni.
GeoSharp,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.