Извиняюсь, если что-то из того, что я собираюсь сказать, не имеет смысла или упускает из виду что-то очевидное - мои знания о внутренностях CLR пятнистые.
Если я правильно понимаю, то, если я просто создаю решение для AnyCPU в VS2K5 (или указываю MSBuild на этот файл .sln с этими настройками), то двоичные файлы компилируются только до MSIL. Затем они получают JITted до 32-битного кода, если он выполняется на 32-битной платформе, или 64-битного кода, если он выполняется на x64 ... верно?
Библиотеки DLL используются для веб-приложения и размещаются в процессе W3WP.exe. Process Explorer сообщает мне, что W3WP - это 64-битный процесс.
Но когда я использую Process Explorer для проверки свойств одной из этих библиотек DLL в представлении DLL, он говорит: «Изображение: 32-разрядное». Что дает?
Если я запускаю corflags против dll, о котором идет речь, он говорит мне: ILONLY 1, 32BIT 0, но PE PE32. Насколько я понимаю, это означает, что да, он компилируется только в IL, нет, он не ограничен ни 32-разрядным, ни 64-разрядным, но я не совсем уверен. Флаг PE32 как-то связан с тем, что он отображается как 32-битный, как указано выше?