Windows 8 未通过Win8应用程序认证:3.10-如果您的应用程序包含ARM或中立软件包,则它必须支持Microsoft Direct3D功能级别9_1 < >我的C应用程序使用了我写的C++ WRET组件,用直接X.获取系统字体列表。

Windows 8 未通过Win8应用程序认证:3.10-如果您的应用程序包含ARM或中立软件包,则它必须支持Microsoft Direct3D功能级别9_1 < >我的C应用程序使用了我写的C++ WRET组件,用直接X.获取系统字体列表。,windows-8,directx,Windows 8,Directx,这基于以下示例: 我的应用程序已在商店中发布,但我的最新更新未能通过第3.10点上的商店审查流程,抱怨我使用Direct 3D,这可能无法在ARM平板电脑上运行。据我所知,我没有使用Direct 3D,我使用的唯一Direct X功能是GetSystemFontCollection 我怎样才能确保我没有不满足这个要求,我是否需要删除组件中对Direct3D的一些恶意引用 还有,为什么我现在失败了,当它过去的时候?您是针对所有三个平台还是选择了您发行版中的任何cpu 此页面是否有助于: 看起来

这基于以下示例:

我的应用程序已在商店中发布,但我的最新更新未能通过第3.10点上的商店审查流程,抱怨我使用Direct 3D,这可能无法在ARM平板电脑上运行。据我所知,我没有使用Direct 3D,我使用的唯一Direct X功能是GetSystemFontCollection

我怎样才能确保我没有不满足这个要求,我是否需要删除组件中对Direct3D的一些恶意引用


还有,为什么我现在失败了,当它过去的时候?

您是针对所有三个平台还是选择了您发行版中的任何cpu

此页面是否有助于:


看起来您可能无意中请求了更高的级别。

我再次提交,并向测试人员提供了一条说明,说明我的应用程序没有使用任何Direct 3D功能,我告诉了他们我使用的DirectX功能

我仍然失败了,但Direct3D的原因不再是原因之一


显然我的应用程序崩溃了,这是第一轮失败的另一个原因,但我认为这一定与Direct3D问题有关。我无法重现崩溃,但至少我现在知道我可以停止使用DirectX了。这是一个令人费解的问题。

当我为商店构建应用程序包时,它会生成3个应用程序包,我会将这三个包全部发送出去。所以,我想我的目标是所有平台。不过,我并没有摆弄构建设置,所以我不确定它们是如何工作的。我已经阅读了有关DirectX的页面,但我不知道在哪里指定我正在使用的版本。我不使用任何需要9_1以上版本的高级功能。您是否明确调用D3D11CreateDevice?从链接的页面:“在测试游戏时,您可以使用Microsoft Visual Studio 2012附带的dxcpl.exe工具,强制具有较高功能级别硬件的系统模拟较低功能级别。例如,使用dxcpl.exe,可以强制11_1设备模拟9_1设备。如果您计划支持Windows RT设备或更低功能级别的平台,请将此工具作为测试过程的一个组成部分。“再次提交,并向测试仪发送注释,这不再被视为问题。看起来像是在转移注意力。谢谢你的帮助。看来自动验证失败了。根据链接中的代码,您应该可以支持9_1功能级别。您是否尝试在Surface上运行应用程序?尝试联系microsoft store ppl并解释您的情况。或者,如果MS使用静态代码分析,您可以尝试通过创建死代码来愚弄他们,从而创建功能级别为d3d\U feature\U level\U 9\U 1的d3d设备。记住使用dxcpl.exe进行测试,以模拟9_1设备。丹尼斯,谢谢你的评论。事实证明,这并不是一个真正的失败原因,我真的在其他方面失败了。在测试说明中指出我如何使用DirectX之后,我的下一个故障报告稍微有用一些。