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

有帮助吗?

解决方案

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

其他提示

来自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计算机,或运行64位运行的Intel Itanium计算机 仅限Windows。如果未指定平台,则默认为anycpu,表示该平台 生成的程序集可以在任何版本的Windows上运行。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top