将通用Windows运行时组件导出为DLL或可安装程序包

时间:2017-01-25 00:18:04

标签: uwp windows-10 packaging

在我的解决方案中,我有三个项目。 MainProject1是UWP类型的应用程序,另外两个是Universal Window运行时组件。 UWP app项目依赖于其他两个功能。

我想在不同的解决方案MainProject2中与一个完全不同的项目共享两个Universal Window运行时组件项目。我是否可以完全提取通用Windows运行时组件来分离包并将它们作为两种解决方案的依赖关系使用?

2 个答案:

答案 0 :(得分:0)

很简单。这可以通过两种方式完成,

  1. 与建议的评论部分一样,将整个项目添加到新解决方案中,但这会让您一次又一次地在多个解决方案中进行更改。
  2. 替代方案有点方便,也是我使用的方式。以下是我的工作:
    1. 从第一个项目解决方案(MainSolution1)添加新窗口 运行时组件并添加一些代码。一旦你有了RunTime 组件就绪,将Mode从Debug转换为Release,(这会 在发布模式下创建最终输出.dll,可以帮到你 发布应用时避免出现问题)
    2. 现在进入Runtime组件的解决方案资源管理器,右键单击然后重新构建(不在整个解决方案上,只在运行时组件上)。
    3. 重建完成后,右键单击运行时组件,然后右键单击菜单中的第三个最后一个选项"在文件资源管理器中打开文件夹"。这将直接指向RunTime组件项目位于磁盘上的位置。
    4. 现在在Bin> x64(或任何您的配置)>发布>您将找到.pri .pdb(这些是有助于调试的符号)和.winmd扩展文件。将这些文件复制到文件夹名称Packages下的新解决方案(MainSolution2)文件夹中(这只是一个很好的做法)在Packages文件夹中创建一个名为YourRunTimeComponentName的文件夹并将文件粘贴到那里。
    5. 现在,从MainSolution2转到参考文献并在左侧的Browse标签下添加新参考,点击底部的Browse按钮,然后在FileExplorer中导航到MainSolution2>包> YourRunTimeComponentName>然后选择.winmd文件。就是这样。它已经完成了。您现在将RunTimeComponent用作编译库而不是整个项目。
    6. 注意:这会使调试RuntimeComponent变得困难,因为某些代码可能是内部代码或私有代码。

      屏幕截图:

      Phase 1

      Phase 2

      Phase 3

      Phase 4

      请注意我已经冒昧地将我的文件夹标签和项目信息隐藏在黑色镶边白色覆盖层中。

答案 1 :(得分:0)

我的建议是将WinRT组件打包为两个nuget包(两个项目各一个),将其上传到nuget.org并将它们添加为MainProject1的依赖项。

查看Create UWP Packages guide了解详情。