4

为了完成一些测试,即使我运行的是 32 位版本的 Windows,我也需要加载 64 位版本的程序集。这可能吗?

4

4 回答 4

4

我不确定你为什么要这样做,但我想你可以。如果您不做任何事情来告诉它,CLR 将加载特定于您正在使用的 CPU 的程序集版本。这通常是你想要的。但是我有一次需要加载程序集的中性 IL 版本。我使用Load 方法来指定版本。我没有尝试过(这里的其他人建议它不适用于可执行程序集),但我想您可以执行相同的操作来指定要加载 64 位版本。(您必须指定是否需要 AMD64 或 IA64 版本。)

于 2008-09-20T05:31:30.180 回答
1

来自 CLR 通过 C# (Jeff Richter):

“如果您的程序集文件仅包含类型安全的托管代码,那么您正在编写的代码应该可以在 32 位和 64 位版本的 Windows 上运行。您的代码无需更改源代码即可在任一版本的 Windows 上运行。

事实上,编译器生成的 EXE/DLL 文件将在 32 位 Windows 以及 64 位 Windows 的 x64 和 IA64 版本上运行!换句话说,一个文件将在任何安装了 .NET Framework 版本的机器上运行。”

" C# 编译器提供了 /platform 命令行开关。此开关允许您指定生成的程序集是否可以在仅运行 32 位 Windows 版本的 x86 机器、仅运行 64 位 Windows 的 x64 机器或运行 Intel Itanium 机器上运行仅限 64 位 Windows。如果不指定平台,则默认为 anycpu,表示生成的程序集可以在任何版本的 Windows 上运行。

于 2008-09-20T05:24:30.527 回答
-1

32 位 Windows 无法在没有 VM/emutalor 的情况下运行 64 位可执行文件

32 位 Windows 可以编译以在 64 位 Windows 上执行

于 2008-09-20T05:21:23.090 回答
-1

不,您不能在运行 32 位版本的 Windows 的系统上运行为 64 位编译的程序集。

于 2008-09-20T05:24:22.337 回答