我正在尝试检测正确的cpu架构,以便安装x86 msi或x64 msi文件。
如果我是对的,对于msi,我需要os cpu架构
我不确定我的方式是否正确,因为我无法测试它。 你觉得怎么样?
private static string GetOSArchitecture()
{
string arch = System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE");
string archWOW = System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432");
if(archWOW != null && archWOW != "" && archWOW.Contains("64"))
return "x64";
if(arch.Contains("86"))
return "x86";
if (arch.Contains("64"))
return "x64";
return "";
}
答案 0 :(得分:3)
你可以P / Invoke到GetNativeSystemInfo,这将给出操作系统的CPU架构,即使是在64位操作系统上的32位进程内也是如此。
答案 1 :(得分:0)
right方式是致电IsWow64Process。此API“需要Windows XP SP2,Windows Vista,Windows Server 2003 SP1或Windows Server 2008”。 This method更容易。
答案 2 :(得分:0)
简单,尝试执行64位应用程序。如果它失败了,你就在32位平台上。
根据您尝试做的事情编辑添加,如果您确定您的msi runner应用程序是32位应用程序,那么请使用Stuart的方法。