如何强制ANYCPU .net应用程序以32位或64位运行?

时间:2012-04-25 21:08:10

标签: .net registry processstartinfo

我有一个Office Addin。当需要在HKLM中设置许可证密钥时,它会使用runas = admin启动应用程序。 Office 2007 Office是32位的。但Office 2010有32位或64位版本。该版本确定HKLM密钥是否为WoW或note。

因此,我需要以与Office(和我的AddIn)匹配的位数启动应用程序。我怎么能这样做?

或者替代方案,如何在64位模式下运行WoW注册表和在WoW中运行时访问64位(常规)注册表?

我在.NET 3.5上。

谢谢 - 戴夫

2 个答案:

答案 0 :(得分:5)

您可以使用CorFlags修改.exe:

CorFlags.exe MyAssembly.exe /32Bit+

将强制32位,并且:

CorFlags.exe MyAssembly.exe /32Bit-

将再次关闭它。 this blog post中有一些替代方案。

答案 1 :(得分:1)

你需要分别编译两个不同的exe。你不能事先强制exe的位数。