如何使用C ++ Windows运行时组件和AnyCPU目标?

时间:2015-01-28 14:38:19

标签: windows windows-store-apps windows-phone-8.1

我使用VS2013制作了 Windows运行时组件,使用C ++ / CX并定位了Universal Apps。因此,我现在有5个DLL文件:

  • 视窗
    • ARM
      • MyLib.winmd
      • 中是指mylib.dll
    • 86
      • MyLib.winmd
      • 中是指mylib.dll
    • 64
      • MyLib.winmd
      • 中是指mylib.dll
  • 的WindowsPhone
    • ARM
      • MyLib.winmd
      • 中是指mylib.dll
    • 86
      • MyLib.winmd
      • 中是指mylib.dll

我的客户希望在Windows 8.1项目中使用此库。他告诉我,他不能将lib用于目标" AnyCPU",这是正常的,因为每个DLL都是针对单一平台的。但是,我应该告诉他什么?他应该如何创建他的项目以便在每个平台上运行一个包?

1 个答案:

答案 0 :(得分:1)

本机代码不支持AnyCPU,仅适用于纯托管代码。

您需要分发特定于平台的模块,您的客户需要针对特定​​体系结构,并为目标体系结构包含适当的组件版本。

一种方法是将组件放在为配置命名的文件夹中,并选择$ configuration属性引用的版本。

设置此功能的一种简单方法是将组件分发为扩展SDK,该SDK将设置适当的目录结构并包含配置的匹配版本。请参阅MSDN上的Distributing a managed Windows Runtime componentHow to: Create a Software Development Kit(即使对于本机组件,托管文档也具有良好的概述。)

nuget package也可以达到同样的效果。