环境variables强制.NET应用程序运行为32位

我被告知有一个环境variables可以设置为强制.NET应用程序在x64版本的Windows上作为32位应用程序运行。 你知道它是什么,或者知道它的一个参考吗? 恐怕我的google-fu今天失败了(或者它不存在)。

我正在使用Resolver One(一个.NET电子表格),并希望访问一些32位唯一的function,而无需修改可执行文件。 如果我可以从一个环境variablesconfiguration这个,那么我可以在需要的时候访问32位的function,而且在需要的时候也可以作为一个64位的应用运行

(注意:我希望能够在启动时切换应用程序以32位还是64位运行,而不是在编译时强制执行)。

谢谢

我已经从Dino Veihland(Microsoft IronPython开发者)那里得到了答案。 我还没有时间测试呢

这是COMPLUS_ENABLE_64BIT。 我认为设置为0禁用64位。

您应该能够将其设置为env var或向HKLM \ Software \ Microsoft \ .NETFramework添加值,名称为“Enable_64Bit”,类型为REG_DWORD,值为0以在全局范围内进行设置(这就是所有COMPlus_ *变量工作)。 这个可能是非常特殊的(它必须在创建过程之前运行)必须在注册表项中设置,但我不完全确定。

这个链接怎么样?

不是一个环境变量,只是使用CoreFlags工具来回切换。

要切换到32位:

CorFlags.exe TheApp.exe /32BIT+ 

回到64位:

 CorFlags.exe TheApp.exe /32BIT- 

检查这个: http : //www.hanselman.com/blog/BackToBasics32bitAnd64bitConfusionAroundX86AndX64AndTheNETFrameworkAndCLR.aspx

目标平台在项目属性对话框btw。

我将尽快尝试这个 – 基本上是一个运行在32位的exe包装,然后从它启动你的目标应用程序。 家长的32位模式应强制一个AnyCPU编译二进制运行在32位。 请参阅http://lostechies.com/gabrielschenker/2009/10/21/force-net-application-to-run-in-32bit-process-on-64bit-os/