[英]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.