gpt4 book ai didi

windows-runtime - 如何打包 Windows 运行时组件以进行分发?

转载 作者:行者123 更新时间:2023-12-04 07:16:43 28 4
gpt4 key购买 nike

我已经构建了一个 WinRT 组件 (.winmd),供 JavaScript 和 XAML Windows 应用商店应用程序使用。在 JavaScript 客户端中包含和引用松散的 .winmd 文件输出时,我看到以下构建警告:

Microsoft.AppXPackage.Targets(808,9):警告 APPX1707:没有为 .winmd 文件“myRuntimeComponent.winmd”提供实现文件。要在应用 list 中生成注册信息,请在项目文件中的 .winmd 引用项上指定“实现”元数据。

我找不到有关此错误或如何包含实现元数据的任何文档。

在运行 JavaScript 客户端时,调用从 .winmd 导出的类方法时会抛出此异常:

0x80040154 - JavaScript 运行时错误:类未注册

请注意,我在客户端应用程序项目中引用松散的 .winmd 文件,而不是引用构建 .winmd 的 Visual Studio 项目。我的用例是分发 .winmd 输出,而不是 .winmd 组件的完整源代码 - 源代码分发不是一个选项。

另请注意,当 Windows 运行时组件被引用为项目引用时,JavaScript 客户端将正确构建和运行。 C# XAML 客户端使用项目引用或对松散 .winmd 的引用正确运行。

当引用松散的 .winmd 时,客户端应用程序构建中似乎没有生成某些注册信息。

如何构建和分发松散的 Windows 运行时组件以供 JavaScript 和托管客户端使用?

最佳答案

使用 C# 或 VB 构建的 WinRT 组件会生成一个包含元数据和实现的 .winmd。使用 C++ 构建的组件提供单独的 .winmd 和 .dll 文件,DLL 包含注册组件的详细信息。

显然,正如警告所示,您需要使用如下内容编辑项目文件以指向 DLL:

<Reference Include="component">
<HintPath>component.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Implementation>component.dll</Implementation>
</Reference>

关于windows-runtime - 如何打包 Windows 运行时组件以进行分发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17864054/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com