.net 让编译成AnyCPU的程序在64位操作系统下以32位运行的方法
如果是iis,可以动态调整一个应用程序池选项就可以。但如果是winform就比较麻烦了,那就是使用CorFlags.exe,动态更改程序集的运行头,更改启动程序集就可以了。可能得借助bat,可实现让用户使用时无感。
使用方法如下(摘录微软官方的文档):
The CorFlags Conversion tool allows you to configure the CorFlags section of the header of a portable executable image.
This tool is new in the .NET Framework version 2.0.
CorFlags.exe assembly [options]
Parameters
Argument | Description |
---|---|
assembly |
The name of the assembly for which to configure the CorFlags. |
Option | Description |
---|---|
/32BIT+ |
Sets the 32BIT flag. |
/32BIT- |
Clears the 32BIT flag. |
/? |
Displays command syntax and options for the tool. |
/Force |
Forces an update even if the assembly is strong-named. Important If you update a strong-named assembly, you must sign it again before executing its code. |
/help |
Displays command syntax and options for the tool. |
/ILONLY+ |
Sets the ILONLY flag. |
/ILONLY- |
Clears the ILONLY flag. |
/nologo |
Suppresses the Microsoft startup banner display. |
/RevertCLRHeader |
Reverts the CLR header version to 2.0. |
/UpgradeCLRHeader |
Upgrades the CLR header version to 2.5. Note Assemblies must have a CLR header version of 2.5 or greater to run natively. |
Remarks
If no options are specified, the CorFlags Conversion tool displays the flags for the specified assembly.