Windows 8 检测Windows应用商店应用程序的平台

Windows 8 检测Windows应用商店应用程序的平台,windows-8,windows-runtime,Windows 8,Windows Runtime,是否有可能在运行时询问为ARM和x86/64编译的Windows应用商店应用程序当前是否在ARM设备上执行,或者更具体地说是否在Microsoft Surface Tablet上从c中执行,或者是否有必要编译同一应用程序的两个版本以在不同的平台上表现不同?这可以通过以下代码完成据此:- 这确实通过了古怪的测试,我不指望它永远存在。仔细想想你为什么需要这些信息,是仅仅为了统计数据,还是你正在改变你的应用程序的行为,如果是,为什么 这可以通过以下代码按照以下步骤完成:- using Windows.

是否有可能在运行时询问为ARM和x86/64编译的Windows应用商店应用程序当前是否在ARM设备上执行,或者更具体地说是否在Microsoft Surface Tablet上从c中执行,或者是否有必要编译同一应用程序的两个版本以在不同的平台上表现不同?

这可以通过以下代码完成据此:-


这确实通过了古怪的测试,我不指望它永远存在。仔细想想你为什么需要这些信息,是仅仅为了统计数据,还是你正在改变你的应用程序的行为,如果是,为什么

这可以通过以下代码按照以下步骤完成:-

using Windows.ApplicationModel;

Package package = Package.Current;
PackageId packageId = package.Id;

String arch = String.Format("{0}", packageId.Architecture);
这确实通过了古怪的测试,我不指望它永远存在。仔细想想你为什么需要这些信息,是仅仅为了统计数据,还是你正在改变你的应用程序的行为,如果是,为什么

using Windows.ApplicationModel;

Package package = Package.Current;
PackageId packageId = package.Id;

String arch = String.Format("{0}", packageId.Architecture);
这将返回X86或ARM,具体取决于底层硬件


这将返回X86或ARM,具体取决于底层硬件。

为什么您希望它的行为有所不同?我怀疑这正是Microsoft没有提供检测方法的原因!为什么你想让它表现得不同呢?我怀疑这正是微软没有提供检测方法的原因!你确定这样行吗?我目前无法测试它,但我怀疑PackageId.Architecture将返回中性,而不是正在执行的进程的架构,因为只有一个包可以查看我的帖子。只是在一个项目集上再次检查以作为任何CPU构建,它确实返回基础架构。你确定这可以工作吗?我目前无法测试它,但是我怀疑PackageId.Architecture将返回中性,而不是正在执行的进程的架构,因为只有一个包可以查看我的帖子。只是在一个项目集上再次检查以作为任何CPU构建,它确实返回基础架构。