部分的な名前に基づいてGACにアセンブリをロードできるようにする必要がある状況があります。これを行うために、app.configファイルに以下を追加しました。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<qualifyAssembly partialName="MyAssembly"
fullName= "MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0123456789abcdef"/>
</assemblyBinding>
</runtime>
これは私が望むように正確に機能します。ただし、machine.configファイルに同じ要素を配置すると、無視されているように見え、MyAssemblyを読み込もうとするとFileNotFoundExceptionsが発生します。
以下は、要素がapp.configにあり、バインドが成功した場合のアセンブリバインディングログです。
ログ:このバインドは、デフォルトのロードコンテキストで開始されます。 ログ:アプリケーション構成ファイルの使用:C:\ Documents and Settings \ jon_scheiding \ My Documents \ Source \ Testing \ Test Projects 1 \ Cmd \ bin \ Debug \ Testers.Cmd.vshost.exe.config ログ:C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ config\machine.configのマシン構成ファイルを使用しています。 ログ:構成ファイルから修飾された部分参照。新しい参照:MyAssembly、Version = 1.0.0.0、Culture = neutral、PublicKeyToken=0123456789abcdef。 ログ:ポリシー後の参照:MyAssembly、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = 0123456789abcdef ログ:GACを調べてアセンブリを見つけました。 ログ:バインドは成功します。C:\ WINDOWS \ assembly \ GAC_MSIL \ MyAssembly \ 1.0.0.0__b20f4683c1030dbd\MyAssembly.dllからアセンブリを返します。 ログ:アセンブリはデフォルトのロードコンテキストでロードされます。
構成がmachine.configにあり、バインドが失敗した場合のログと比較してください。
ログ:このバインドは、デフォルトのロードコンテキストで開始されます。 ログ:アプリケーション構成ファイルの使用:C:\ Documents and Settings \ jon_scheiding \ My Documents \ Source \ Testing \ Test Projects 1 \ Cmd \ bin \ Debug \ Testers.Cmd.vshost.exe.config ログ:C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ config\machine.configのマシン構成ファイルを使用しています。 ログ:現時点では、ポリシーは参照に適用されていません(プライベート、カスタム、部分的、またはロケーションベースのアセンブリバインド)。 ログ:新しいURLファイルのダウンロードを試みています:/// C:/ Documents and Settings / jon_scheiding / My Documents / Source / Testing / Test Projects 1 / Cmd / bin / Debug/MyAssembly.DLL。 ログ:新しいURLファイルのダウンロードを試みています:/// C:/ Documents and Settings / jon_scheiding / My Documents / Source / Testing / Test Projects 1 / Cmd / bin / Debug / MyAssembly/MyAssembly.DLL。 ログ:新しいURLファイルのダウンロードを試みています:/// C:/ Documents and Settings / jon_scheiding / My Documents / Source / Testing / Test Projects 1 / Cmd / bin / Debug/MyAssembly.EXE。 ログ:新しいURLファイルのダウンロードを試みています:/// C:/ Documents and Settings / jon_scheiding / My Documents / Source / Testing / Test Projects 1 / Cmd / bin / Debug / MyAssembly/MyAssembly.EXE。 ログ:すべてのプロービングURLが試行され、失敗しました。
問題は、「現時点ではポリシーが参照に適用されていない」という4行目であるようです。ただし、このメッセージの意味や対処方法に関するドキュメントはほとんど見つかりません。
フレームワークに<runtime>要素を認識させるにはどうすればよいですか?
前もって感謝します!