10.2でArcGIS 10.1アプリケーションを実行する


10

ArcGIS 10.1がインストールされているPCでコンパイルされた.NETアプリケーションをサポートしています。アプリケーションは、ユーザーインターフェイスとArcGISデスクトップエクステンションに加えて、インストール時にデスクトップエクステンションを登録するためにWindowsインストーラーによって呼び出されるインストーラーアセンブリで構成されます。

私が抱えている問題は、10.1 ESRIアセンブリが見つからないためクラッシュするため、ArcGIS 10.2がインストールされたPCでアプリケーションが実行されないことです。v9.3以降、ESRIは、実行時にプログラムを最新バージョンにリダイレクトするためのパブリッシャーポリシーファイルを提供しなくなったようです。

アプリケーションの.exe.configにランタイムアセンブリバインディングを追加することにより、プログラムをリダイレクトして10.2アセンブリをロードすることができました。ただし、これはデスクトップ拡張をリダイレクトせず、アプリケーションのインストール時に10.1ライブラリを探すインストーラーの問題を解決しません。

ESRIのソリューションは、新しいバージョンのArcGISがリリースされるたびにアプリケーションを再コンパイルすることです。ただし、これは、エンドユーザーが使用しているすべてのリリースのArcGISのコピーが必要になることを意味します。そして、再コンパイルするためにアプリケーションコードを変更する必要があるたびに、異なるバージョンをアンインストールして再インストールする必要があります。

誰か提案はありますか?特定のバージョンを探すのを避けるために、実行時にライブラリを動的にロードできますか?他の解決策はありますか?

回答:


2

次のプロパティを使用するようにプロジェクトのArcGIS参照を設定します。

Copy Local = False
Specific Version = False

ほとんどの場合、これにより、非推奨になった、または重大な変更が加えられたarcobjectを使用していないことを前提として、プログラムに上位互換性が与えられます。


Visual Studioには既にこれらの設定があります。「特定のバージョン= False」は、Visual Studioが参照をロードする方法にのみ影響し、アプリケーションがビルドおよびデプロイされた後は影響しません。
アンディ

2

プロジェクトアーキテクチャをESRIアドインに変更するのが最適な場合があります。そうすれば、私がアーキテクチャを正しく理解している場合にWindowsレジストリを処理しているというWindowsインストーラの処理を回避できます。

アドインははるかに簡単です。Windows固有のインストーラーは必要ありません。アドインは、.esriAddInファイルタイプである特別な.zipファイルとして出荷されるだけで、ESRIによって推奨されています。これらはWindowsレジストリを処理せず、ESRIのみを処理し、ファイルをワンクリックでインストールします。Rich Wawrzonekが提案した変更をより適切に実施する必要があります。

さらに、ESRIはメジャーバージョン内での10.xアドインには下位互換性がある、つまり10.2は10.1および10.0アドインを使用でき、10.1は10.0アドインを使用できると述べています(こちらのプレゼンテーションを参照)。移行時にArcObjectsで削除または変更されたものがあるかどうかに注意する必要があります。

たとえば、OnContextMenuメソッドのメソッドシグネチャは、次のインターフェイスの10.2で変更されました。

  • IDocumentEvents
  • IGxDocumentEvents
  • IGMxDocumentEvents
  • ISxDocumentEvents

削除に関する限り、10.2での削除は次のとおりです。

  • MaplexUI
    • MaplexExtension
    • MaplexExtensionClass

残りの変更は追加された機能です。

以下のコメントであなたの質問に答えるために、はい、これにより、(10.xにとどまっている限り)Arcの異なるバージョン用にコンパイルする必要がないことが保証されます。彼らが11にシフトするとき、これは別の話になるかもしれません。MapInfoをサポートする限り、私はこれに精通していません。


提案に感謝しますが、私は2つの考えを持っています。1.これは、DLLバージョンの問題を回避するための保証ですか、それとも、ArcGISのバージョンごとにアドインを再コンパイルする必要がありますか?問題はインストーラーやレジストリにありません-問題は、ESRIが新しいリリースでパブリッシャーポリシーファイルを提供しないことです。2.私のアプリケーションはArcGISだけでなく、MapInfoでも動作します。したがって、アプリケーションの大部分はスタンドアロンインターフェイスであり、コードのごく一部のみがArcGISまたはMapInfoに関連しています。
アンディ

アンディはあなたの懸念に対処するために私の答えに追加されたものを見てください。
GeoSharp 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.