【发布时间】:2014-01-28 10:58:55
【问题描述】:
我的 Windows 应用商店应用适用于所有架构(x86、x64、arm),并在应用商店中发布。但是在构建应用程序包时(右键单击项目、商店、创建应用程序包)Windows 8.1 的 Windows 应用程序认证工具包 3.1 通过了所有测试,除了 平台相应文件 测试:
- 发现错误:平台相应文件测试检测到以下错误:
- 文件 fmodexMetroL64.dll 仅适用于 x64 处理器类型; AppX 清单将“ProcessorArchitecture”声明为 x86。
- 文件 fmodexMetroLarm.dll 仅适用于 arm 处理器类型; AppX 清单将“ProcessorArchitecture”声明为 x86。
- 文件 fmodexMetro64.dll 仅适用于 x64 处理器类型; AppX 清单将“ProcessorArchitecture”声明为 x86。
- 文件 fmodexMetroarm.dll 仅适用于 arm 处理器类型; AppX 清单将“ProcessorArchitecture”声明为 x86。
- 如何修复:确保二进制文件架构与 AppX 清单中指定的 ProcessorArchitecture 属性兼容。 http://go.microsoft.com/fwlink/?linkid=294935
这里的问题是我有每个架构的 .dll 文件,并且无论我尝试什么,它们都会被添加到任何架构构建中。我还没有找到如何告诉 Visual Studio 一些 .dll 应该只包含在特定的体系结构构建中,而不是其他的。
我的 AppX 清单根本没有声明任何文件,也根本没有声明任何“ProcessorArchitecture”。
我目前的丑解决方案,每次我想构建:
- 我从项目中删除了不正确架构的 .dll
- 我只为单一架构构建
- 我将之前删除的 .dll 重新插入到项目中
我想找到一种方法来避免这种痛苦。
【问题讨论】:
-
您是否分别构建它们(不同的架构)?
-
@crea7 或右键单击项目 -> 商店 -> 构建应用程序包。它一口气在文件夹 AppPackage 中构建了所有三个包。
-
“中性”未选中?
-
@crea7 或者它在哪里? edit 哦,是的,未选中
-
IDE 不能很好地适应这种情况。我认为您可以通过手动编辑项目文件并添加一个检查平台的条件来使其工作。
标签: dll windows-store-apps app-certification-kit cpu-architecture appxmanifest