私が言おうとしていることのいずれかが意味をなさないか、明らかなことを見落としている場合はお詫び申し上げます.CLRの内部に関する私の知識はむらがあります.
私が正しく理解していれば、VS2K5 で 'AnyCPU' のソリューションをビルドする (または、これらの設定でその .sln ファイルに MSBuild を指定する) と、バイナリは MSIL までしかコンパイルされません。その後、32 ビット プラットフォームで実行された場合は 32 ビットに JIT され、x64 で実行された場合は 64 ビット コードになります。
DLL は Web アプリに使用され、W3WP.exe プロセスでホストされます。Process Explorer は、W3WP が 64 ビット プロセスであることを示しています。
しかし、Process Explorer を使用して DLL ビューでこれらの DLL の 1 つのプロパティを確認すると、「Image: 32-bit」と表示されます。何を与える?
問題の dll に対して corflags を実行すると、次のように表示されます: ILONLY 1 , 32BIT 0 but PE PE32 。私の理解では、これははい、IL までしかコンパイルされていません。いいえ、32 ビットまたは 64 ビットに限定されていませんが、完全には明確ではありません。PE32 フラグは、上記のように 32 ビットとして表示されることと関係がありますか?