我正在编写WEC7应用程序的安装程序,该应用程序在多个设备上运行,每个设备都有不同的架构,甚至可能有不同的操作系统版本。由于历史原因,该应用程序是用C ++编写的。这意味着将为每个OS /体系结构版本编译应用程序。安装程序包的所有版本都是resouces。我只需要确定要安装哪一个。 OS版本可以在System.Environment.OSVersion.Version.Major中获得,但我无法区分ARM和x86架构。
我遇到的可能解决方案包括:
SYSTEM_INFO si;
GetSystemInfo(&si);
return si.wProcessorArchitecture;
然而,这是C ++代码,因此遇到了同样的问题,即:两个编译版本(ARM& x86),您必须知道要加载哪个...但这就是我想运行代码的原因。
我还调查了System.Management
,但我无法在WEC7上找到它。
有什么建议吗?
答案 0 :(得分:0)
您可以随时P /调用GetSystemInfo
来电:
[DllImport("coredll.dll")]
public static extern void GetSystemInfo(out SystemInfo info);
public enum ProcessorArchitecture
{
Intel = 0,
Mips = 1,
Shx = 4,
Arm = 5,
Unknown = 0xFFFF,
}
[StructLayout(LayoutKind.Sequential)]
public struct SystemInfo
{
public ProcessorArchitecture ProcessorArchitecture;
public uint PageSize;
public IntPtr MinimumApplicationAddress;
public IntPtr MaximumApplicationAddress;
public IntPtr ActiveProcessorMask;
public uint NumberOfProcessors;
public uint ProcessorType;
public uint AllocationGranularity;
public ushort ProcessorLevel;
public ushort ProcessorRevision;
}