簡體   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