Ich unterstütze eine .NET-Anwendung, die auf einem PC mit installiertem ArcGIS 10.1 kompiliert wurde. Die Anwendung umfasst eine Benutzeroberfläche und eine ArcGIS-Desktop-Erweiterung sowie eine Installationsbaugruppe, die von Windows Installer aufgerufen wird, um die Desktop-Erweiterung während der Installation zu registrieren.
Das Problem, das ich habe, ist, dass die Anwendung auf einem PC mit ArcGIS 10.2 nicht ausgeführt werden kann, da die 10.1 ESRI-Assemblys nicht gefunden werden und daher abstürzen. Es scheint, dass ESRI seit Version 9.3 keine Publisher-Richtliniendateien mehr bereitstellt, um das Programm zur Laufzeit auf die neuesten Versionen umzuleiten.
Ich habe es geschafft, das Programm umzuleiten, um die 10.2-Assemblys zu laden, indem ich der .exe.config der Anwendung eine Laufzeitassembly-Bindung hinzugefügt habe. Dies leitet jedoch die Desktop-Erweiterung nicht um und löst das Problem nicht, wenn das Installationsprogramm bei der Installation der Anwendung nach den 10.1-Bibliotheken sucht.
Die Lösung von ESRI scheint darin zu bestehen, die Anwendung jedes Mal neu zu kompilieren, wenn eine neue Version von ArcGIS veröffentlicht wird. Dies bedeutet jedoch, dass ich eine Kopie jeder Version von ArcGIS benötigen würde, die die Endbenutzer verwenden. Und ich müsste jedes Mal, wenn ich den Anwendungscode ändern muss, um ihn neu zu kompilieren, verschiedene Versionen deinstallieren und neu installieren.
Hat jemand irgendwelche Vorschläge? Können die Bibliotheken zur Laufzeit dynamisch geladen werden, um nicht nach einer bestimmten Version zu suchen? Gibt es eine andere Lösung?