我正在开发一个UWP库(this one),我刚刚将目标版本升级到16299 SDK。
这也导致NuGet引用从project.json文件迁移到。PackageReference
的.csproj文件,理论上听起来非常好。
但是,在尝试发布NuGet包的beta版本(与nuget pack
一样生成)之后,我注意到库依赖项未正确添加,我开始得到异常,说明了给定的类型失踪(因为缺少依赖性)。
我发现this issue确实确认nuget pack
尚不支持PackageReference
依赖关系。
我已尝试按照this guide使用MSBuild并尝试使用:
>msbuild /t:pack UICompositionAnimations.csproj /p:NuspecFile=UICompositionAnimations.nuspec /p:Configuration=Release
但我最终得到quite a few errors。
使用
PackageReference
对NuGet UWP库进行打包的正确方法是什么?
感谢您的帮助!
答案 0 :(得分:0)
如何使用PackageReference打包UWP库?
正如您所知,nuget.exe pack
目前不支持基于程序包参考的项目,而“Allow project reference DLLs to be added to the parent nupkg for pack target like IncludeReferencedProjects in nuget.exe”功能正在进行中。
作为一种变通方法,您可以手动将依赖项包含在.nupsec
文件中,以下是我的.nuspec
:
<?xml version="1.0"?>
<package >
<metadata>
<id>ClassLibrary1</id>
<version>1.0.0</version>
<authors>Tester</authors>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Package description</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>Copyright 2018</copyright>
<tags>Tag1 Tag2</tags>
<dependencies>
<dependency id="Newtonsoft.Json" version="10.0.3" />
</dependencies>
</metadata>
<files>
<file src="bin\Debug\ClassLibrary1.dll" target="lib\uap10.0"/>
</files>
</package>
打包此.nuspec
文件后,将生成包含依赖关系Newtonsoft.Json
的包:
有关详细信息,请参阅Create UWP packages。
希望这有帮助。