0

参照によって追加された dll を持つ C# アプリケーションがあります。(コンパイル後に) Windows から exe ファイルを実行しようとして、dll の名前が変更されたときに、アプリケーションにエラー メッセージを表示させたいと考えています。

どうすればコードでそれを行うことができますか?

4

3 に答える 3

3

exe が必要な dll を見つけられない場合は、既にエラーが表示されているはずです。次のようなもの:

コンピュータに example.dll が見つからないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。

これを取得していないという事実は、いくつかのことのいずれかを意味します。

a) dll は実際にはプログラムによって参照されていません。

b) dll を exe にリンクしました。

c) DLL は CLR によって別の場所で発見されました (Pondidum に感謝します)。

于 2009-12-02T12:48:05.983 に答える
1

また、exeが必要なアセンブリを別の場所で見つける可能性もあります。必要なアセンブリを検索する場所を確認するには、MSDNのこの記事を確認してください。

もう1つの可能性は、AssemblyLoadイベントまたはAssemblyResolveイベントを使用して、ロードている(ロードされていない)アセンブリに関する詳細情報を取得することです。

于 2009-12-02T14:52:38.037 に答える
1

.NET アプリでは、不足している DLL 内のクラスを初めて使用しようとするまで、エラーは発生しません。

いくつかの可能性:

  • プログラムの起動時に実行され、各 DLL の 1 つのクラスでダミー メソッドを呼び出すコードを記述します。
  • Assembly.GetReferencedAssemblies() を再帰的に呼び出し、不足している DLL のリストを作成します。
于 2009-12-02T12:48:53.873 に答える