如何加载特定版本的程序集

4

为了完成一些测试,我需要加载一个64位版本的程序集,即使我正在运行32位版本的Windows操作系统。这可能吗?

4个回答

4
我不确定为什么您想这样做,但我认为您可以这样做。如果您没有采取任何措施告诉CLR,它将加载特定于您使用的CPU的程序集版本。通常这是您想要的。但我曾经遇到过需要加载程序集的中性IL版本的情况。我使用了Load方法指定了版本。我没有尝试过(其他人在这里建议对可执行程序集无效),但我认为您可以采用同样的方式来指定您要加载64位版本。(您必须指定您想要的AMD64或IA64版本。)

1

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


-1

32位的Windows系统无法在没有虚拟机或模拟器的情况下运行64位的可执行文件。

32位的Windows系统可以编译为在64位的Windows系统上运行。


我不认为MS VPC或VMWare允许您在32位主机上运行64位客户机-其他情况我不确定。 - Ryan

-1

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


为什么会有人踩这个?在32位操作系统上无法执行64位汇编程序。 - Chris Pietschmann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接