2 つのアセンブリがあり、それらを A と B と呼ぶことができます。それらに厳密な名前を割り当てたところ、アセンブリ B がアセンブリ A の古いバージョンを探しているという問題が発生しました。**EDIT2: AssemblyB を削除しても問題が解決しないため、古いバージョンを探しているVS2008かもしれませんか?また、fusionlog を介して、次の警告が表示されます: wrn アプリケーション構成ファイルのバインディング リダイレクトが許可されていません。これは何か関係がありますか?**
同じ種類のエラーが複数発生します。ここに 1 つのスニペットを示します。
You must add a reference to assembly 'AssemblyA, Version=1.2.4737.25316, Culture=neutral, PublicKeyToken=null'.
プロジェクト内の厳密な名前の AssemblyA は、次のプロパティを示します。
app.config 内に、次のコードを配置しました。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="AssemblyA" culture="neutral"
publicKeyToken="a22e30ac6a0edfc0"/>
<bindingRedirect oldVersion="1.2.4737.25316" newVersion="1.3.0.19440"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
しかし、これはうまくいきません。両方のアセンブリのソースにアクセスできます。
編集:厳密な名前を削除して古い(弱い名前の)dllをプロジェクトに追加すると、厳密な名前のバージョンについて尋ねるエラーが表示されます
You must add a reference to assembly 'AssemblyA, Version=1.3.0.19440, Culture=neutral, PublicKeyToken=a22e30ac6a0edfc0'.
ここで何が起こっているのですか?