2009-05-25 26 views
0

ArcGIS用のいくつかのコマンドと自動アップデータを含むいくつかのクラスライブラリがあります。今まで、各ライブラリにはインストーラクラスが含まれていました。すべてのDLLのインストールを担当する単一のセットアッププロジェクトがありました。ちょうどin hereのように。
ツールバーを含む別のライブラリを作成しました。これには、私たちが持っているすべてのコマンドが入っているはずです。プロジェクトでは他のプロジェクトが参照され、BaseToolbarベースクラスのAddItemでは、オーバーロードがAddItem(Type type)であり、文字列(CLSIDまたは名前)だけでなくすべて厳密に型指定されています。
当然ながら、ツールバープロジェクトにはinsallterが含まれています。私はちょうどそれがすべてのコマンドのdllが登録されることを確認するように(上のリンクからの)推奨されたインストーラの実装を変更することをお勧めしたいと思っていました(dllファイルを出力フォルダに繰り返し、どのような方法がありますか?)
これは、インストールの問題をすべてのコマンドプロジェクトから中央の場所に移動します。ツールバープロジェクトから参照を追加するだけで済むので、このようにコマンドを追加する方が簡単だと思います。それは意味をなさないでしょうか?あるいは、すべてのプロジェクトに別々にインストーラーを置いて、それをセットアッププロジェクトに1つずつ追加する必要がありますか?arcgis com登録

また、ArcMAP内でいくつかのコマンドがどこから来ているのかを簡単に見つける方法はありますか?私はそこにいくつかの奇妙なカテゴリがあります(このマシン上の過去のユーザーによって作成されました)。削除したい古いコマンドがあります。

答えて

0

私はそれが理にかなっていると思います。インストーラ(Wise、installshieldなど)がインストーラアセンブリでRegisterAssemblyとUnregisterAssemblyを呼び出すときに、すべてが適切な場所にあることを確認するだけです。たとえば、問題の可能性があるUnregisterAssemblyを呼び出す前に、アンインストールによって "コマンド"アセンブリが削除されたとします。私はあなたがそれを見つけるためにそれをテストしなければならないと思う。すべての "コマンド"アセンブリが利用可能であることが分かっている限り、正常に動作するようです。

共通のインストールコードを個別の共通アセンブリに含めて解決し、インストーラクラスを常に実装することもできます。

0

ワークフローがより便利で便利なのは、すべてのコマンドを1つのライブラリ/アセンブリ自体で処理することです。 この方法で登録するDLLは1つだけです。

他のカスタムツールが出ているdllを見つける方法は:トリックがあります。 ArcMapを実行するカスタムArcGIS拡張モジュールまたはサンプルをデバッグします。 Visual Studioの出力ウィンドウを見てください。これにより、ArcMapによってロードされるすべてのdllのリストが表示されます

+0

ええ、私たちはすべてのコマンドに対して1つのコマンドdllを作ったはずです。持っているべきキーワード:-) vsのチップのおかげで。私はそのリストを見ていきます。 –

関連する問題