本回答基于打包面向.NET Framework的库的原则。请先阅读链接中的答案以更好地理解以下内容。
首先,您必须在项目构建设置中勾选“生成库布局”复选框。如果没有这个设置,将无法使用由您的库导出的XAML用户控件。确保将此设置应用于所有构建配置和架构。
除了基本的三个资产(请参见上面链接的答案)之外,您还需要从构建输出目录中打包以下附加资产:
- MyUwpLibrary.pri
- MyUwpLibrary子目录
这些额外资源是使用您的程序集导出的XAML用户控件所需的。即使您尚未从库中导出任何XAML,也始终包括这些资产 - 你日后可能会这样做,如果不包含这些资源将很麻烦!
要发布UWP库,您需要创建一个NuGet包,其结构如下:
\---lib
\---uap10.0
| MyUwpLibrary.dll
| MyUwpLibrary.pdb
| MyUwpLibrary.pri
| MyUwpLibrary.xml
|
\---MyUwpLibrary
HelloWorld.xaml
MyUwpLibrary.xr.xml
如果您熟悉.NET Framework库的发布,那么这应该非常熟悉和简单。您可以使用以下模板来创建nuspec文件:
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="3.2">
<id>Example.MyUwpLibrary</id>
<version>1.0.0</version>
<authors>Firstname Lastname</authors>
<description>Example of a UWP library that exports a user control.</description>
<dependencies>
<dependency id="Newtonsoft.Json" version="8.0.1" />
</dependencies>
</metadata>
<files>
<file src="..\bin\Release\MyUwpLibrary**" target="lib\uap10.0" />
</files>
</package>
就这样了!记得在创建 NuGet 包之前使用 Release 配置构建您的解决方案。有关打包 .NET 框架库的更多详细信息,请参阅上面链接的答案。
可在GitHub上获得示例库和相关打包文件。对应于此答案的解决方案为 SimpleUwpLibrary。