繁体   English   中英

强制C#64位应用程序以32位运行?

[英]Forcing a C# 64bit application to run as 32bit?

假设当我编译一个托管程序集时,我将其强制为64位(使用配置管理器)。 假设在编译之后,我希望将该应用程序作为32位进程运行。 我可以强迫它再次变为32位吗? 我尝试玩耍并编辑PEHeader(“机器”和“ 32BitOnly”字段),但该应用程序无法在32位平台上启动。
当我强制将其编译为64位时,生成的IL有什么区别? (与AnyCPU相比)

我不认为IL有区别,非托管标头也有区别。 64位模式使用PE32 +格式的标头(即64位)编译EXE。 因此,仅更改标志不会更改EXE的实际格式。 这就是为什么您会得到以下错误的原因:它不是有效的32位应用程序,不是,它是64位应用程序,而32位Window无法解析PE32 +标头。

您必须将EXE完全重写为PE32格式,因此可能无法执行。

您不能只是重新编译还是为了您自己的利益?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM