VS2012错误C1107

时间:2013-02-25 14:43:18

标签: c++ visual-c++ visual-studio-2012 windows-runtime

我收到以下错误:

fatal error C1107: could not find assembly 'platform.winmd': please specify the assembly search path using /AI or by setting the LIBPATH environment variable

重现的步骤

0)创建一个新的空项目

1)C / C ++>一般>使用Windows运行时扩展>是

2)C / C ++>代码生成>启用最小重建>否

3)添加源文件* .cpp,文件可以为空

4)尝试编译

我尝试手动比较和更改项目设置以匹配某些示例代码,但似乎没有任何效果。

2 个答案:

答案 0 :(得分:12)

我不明白你有什么问题,所以

  1. 如果您不想针对WinRT进行编码,只需将“Consume ...”设置为false,问题就会消失
  2. 如果您要针对WinRT进行编码,则应执行其他步骤:转到常规并将 Windows应用商店应用支持设置为true

答案 1 :(得分:0)

要创建C ++ / CX Desktop应用程序,请执行以下操作:

C/C++ -> General项目属性中,将Consume Windows Runtime Extension设置为是

在同一标签中,将它们输入到Additional #using Directories中,输入包含windows.winmdplatform.winmd文件的目录。对我而言,使用VS2017,即:

  

C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ lib \ store \ references;
  C:\ Program Files(x86)\ Windows Kits \ 10 \ UnionMetadata;
  C:\ Program Files(x86)\ Windows Kits \ 10 \ References \ Windows.Foundation.UniversalApiContract \ 2.0.0.0;
  C:\ Program Files(x86)\ Windows Kits \ 10 \ References \ Windows.Foundation.FoundationContract \ 2.0.0.0

然后调用RoInitialize或使用WinRT主样式函数(以删除有关主线程的警告C4447):

using namespace Platform;

int main(Array<String^>^ args) ....

参考文献:
Using C++/CX in Desktop apps
Calling Windows 10 APIs from a desktop application