管理されていないサードパーティの DLL ( ChilkatDotNet2.dllですが、問題ではないようです)を参照する C# のプロジェクトがあります。サードパーティの DLL は、x86 と x64 の 2 つのバージョンで提供されます。processorArchitecture=x86
プロジェクトは、適切な<Reference>
要素でx86 バージョンを参照します。Debug|Any CPU と Release|Any CPU の両方で問題なくビルドできます。
ここで、サードパーティ DLL の x64 バージョンへの参照を変更します - processorArchitecture=AMD64
. (理由は聞かないでください:))。Debug|Any CPU は再び正常にビルドされます。しかし、Release|Any CPU は次のエラーで失敗します: An attempt was made to load an assembly with an incorrect format: ChilkatDotNet2.dll
。
その理由は何ですか?VS 自体が 32 ビット プロセスで実行されているためだと思いますが (そうですか?)、デバッグで正常にビルドされるのはなぜですか?