2

こんにちは、私はこれが尋ねられたことを知っていますが、答えが得られませんでした. C:\Program files (x86)\Dummu_API.dll にインストールされている dll を使用したいときに問題が発生します

アプリを実行すると、例外がスローされます。

ファイルまたはアセンブリ 'Dummy_API、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

私のプロジェクトには、Copy Local = false および特定のバージョン = false としての参照があります。私のプロジェクトも x86 プラットフォーム ターゲットです。

アプリがアセンブリを見つけられない理由がわかりません。何が起こっているのですか?

4

3 に答える 3

3

オプション1

参照にアセンブリが見つからない場合は、自分でアセンブリを解決することをアプリケーションに伝えることができます。それを行うには:

アプリケーションの main メソッドで、アセンブリ リゾルバーをアタッチします。

AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;

メイン メソッドで動的に解決されたアセンブリを使用していないことを確認してください。

リゾルバー メソッド コード (ここでアセンブリを読み込みます。ResolveEventArgs を参照してください。ハード コードしたばかりですが、ここでさまざまな場所からさまざまなアセンブリを解決できます)

static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
    return Assembly.LoadFile(@"C:\temp\ClassLibrary1.dll");
}

オプション 2

これを app.config に追加します (アプリケーション ベース ディレクトリのサブ フォルダーに対してのみ機能します)。

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
     <probing privatePath="PathToMyAssemblies\" />
  </assemblyBinding>
</runtime>
于 2014-02-19T22:43:33.767 に答える
1

そのため、ファイルは GAC になく、ローカル コピーもありません。ロードできる唯一の2つの場所を排除しました-なぜこれが機能することを期待しているのかわかりません.

Copy Local=true を設定するか、コードを実行するマシンのグローバル アセンブリ キャッシュに Dummy_API.dll をインストールする必要があります。どちらか一方。

于 2014-02-19T22:34:04.073 に答える