我想知道(用于记录目的)是否为x86 / x64 / AnyCPU / Win32编译了商店应用程序。
我找不到任何东西,但似乎这些信息应该在运行时提供。
答案 0 :(得分:4)
转到您的项目属性,并为每个平台添加条件编译符号(在构建标签中)。让我们说PLATFORM_X86
,PLATFORM_X64
和PLATFORM_ANYCPU
(您也可以在命令行中使用/D
选项。)
您可以在代码中使用此类符号:
#if PLATFORM_X86
// Code specific for X86 builds
#endif
如果您需要进行日志记录,您可以简单地声明一个常量:
#if PLATFORM_X86
private const string Platform = "X86";
#elif PLATFORM_X64
private const string Platform = "X64";
#elif PLATFORM_ANYCPU
private const string Platform = "AnyCPU";
#endif
当然,在为AnyCPU
进行编译时,您可以使用Environment.Is64BitProcess
来了解您正在运行的位置。
答案 1 :(得分:1)
var result="";
if (IntPtr.Size == 8)
result= "x64";
else
result="x86";
下一个方法无法在windows-store-apps 中工作,因为@Adriano Repetti已经标记给我了。
我不会因社区原因删除它。
另一种方法是使用\[Module.GetPEKind Method\]
Assembly assembly = Assembly.GetExecutingAssembly();
PortableExecutableKinds p;
ImageFileMachine machineInfo;
assembly .ManifestModule.GetPEKind(out p, out machineInfo);
这段代码machineInfo
变量应该是以下之一:
AMD64
用于定位64位AMD处理器ARM
用于ARM处理器I386
用于32位Intel处理器IA64
用于64位Intel处理器