【发布时间】:2013-07-25 16:51:23
【问题描述】:
我构建了一个 WinRT 组件 (.winmd) 供 JavaScript 和 XAML Windows Store 应用程序使用。在 JavaScript 客户端中包含和引用松散的 .winmd 文件输出时,我看到此构建警告:
Microsoft.AppXPackage.Targets(808,9):警告 APPX1707:没有为 .winmd 文件“myRuntimeComponent.winmd”提供实现文件。要在应用清单中生成注册信息,请在项目文件中的 .winmd 引用项上指定“实施”元数据。
我找不到有关此错误或如何包含实现元数据的任何文档。
在运行 JavaScript 客户端时,调用从 .winmd 导出的类方法时会抛出此异常:
0x80040154 - JavaScript 运行时错误:类未注册
请注意,我在客户端应用程序项目中引用松散的 .winmd 文件,而不是引用构建 .winmd 的 Visual Studio 项目。我的用例是分发 .winmd 输出,而不是 .winmd 组件的完整源代码 - 源代码分发不是一种选择。
另请注意,当 Windows 运行时组件被引用为作为项目引用时,JavaScript 客户端会正确构建和运行。 C# XAML 客户端可以通过项目引用或对松散 .winmd 的引用正确运行。
当引用松散的 .winmd 时,似乎在客户端应用程序构建中没有生成某些注册信息。
如何构建和分发松散的 Windows 运行时组件以供 JavaScript 和托管客户端使用?
【问题讨论】:
-
您也需要组件中的 .dll。组件编译时,必须生成一个.winmd文件和一个.dll文件。
-
不幸的是,情况并非如此 - 没有生成 dll。输出文件包括 .winmd、.pri 和 .pdb。
-
嗨,杰西,您找到解决问题的方法了吗?
标签: windows-runtime windows-store-apps winjs winmd