ロードされますが、別の場所に位置している:アセンブリのご注文は、私はいくつかの.NETアセンブリ、同じバージョン、同じファイル名を持つ
- プログラムフォルダ
- C:\ Windowsの
- C: \ WINDOWS \ system32に
- 場所のアセンブリが最初にロードされますGAC 今
、?
ロードされますが、別の場所に位置している:アセンブリのご注文は、私はいくつかの.NETアセンブリ、同じバージョン、同じファイル名を持つ
、?
.NETアセンブリは、通常のウィンドウが.dllをより異なる検索順序を持っています。アセンブリが強く署名されている場合にのみ、GACに最初にチェックされます。アセンブリが署名されていない厳密な名前でない場合、そのあとローカルフォルダがチェックされます。これは.netアセンブリの検索順序の終わりです。上記1,2,3はチェックされていません。
あなたのアプリケーションのローカル構成ファイルを持つことによって.netがアセンブリを探す場所を変更することができます。
また、this post in the microsoft.public.dotnet.framework.aspnet
groupには非常に有用な情報が含まれています。
これは合理的な説明のようになります。以下はあまりにも関連する可能性がMSDNでhttp://www.ondotnet.com/pub/a/dotnet/2003/03/17/bindingpolicy.html
C:\ WindowsおよびC:\ Windows \ System32は、管理対象アセンブリのプロービングとは関係ありません。フレームワークはそこでアセンブリを探すことはありません。
それはGAC
/Application Folder
で最初に検索し、app.configファイルで指定されたならば、フォルダ内codebase
/privatepath
設定によって指されます。 プロービング中に.dllまたは.exeを追加して複数の組み合わせをチェックし、assembly.exe/.dllという名前のフォルダを探し、必要に応じて特定のカルチャを対象とするアセンブリを探します。
実行時にアセンブリの解決に失敗したフォルダを確認するツールとして、Fusion Log Viewerがあります。 VSコマンドプロンプトで「fuslogvw」と入力します。これは、ApplicationNameと名前でキー入力されたエントリを表示します
これは、ProbingPathのルックアップ – GETah
で強くお伝えする価値があります。 – user145400