在Visual Studio 2017中,netstandard库有一种新格式,可以合理地直接生成nupkg。它看起来像这样:
在csproj中,它看起来像这样:
有没有办法告诉msbuild包版本应该是什么样的,以便sln中的项目同时更新,以便nuspec最终具有正确的版本依赖?这可能是bug,但是当我使用msbuild /p:Configuration=Release /p:PackageVersion=3.1.7
时,原始的手型版本是2.0.0。如果我有一个alpha和beta项目,beta依赖于alpha,我最终会得到
阿尔法 - 3.1.7.nupkg
beta-3.1.7.nupkg依赖于alpha-2.0.0
也许唯一的方法是在csproj上进行正则表达式替换,但如果我可以避免这种情况,那就太好了。
此外,此PackageVersion方法不更新实际版本:
目前,版本在恢复期间锁定,而不是在生成期间锁定。
作为一种解决方法,您可以使用
msbuild /restore /p:Version=1.2.3
(推荐,需要MSBuild 15.5+)
要么
msbuild /t:Restore;Pack /p:Version=1.2.3
(Version
也会影响生成的程序集版本,但您可以使用PackageVersion
仅更改生成的nupkg版本)。
请参阅this GitHub issue以了解基础NuGet问题(目前,计划是在将来的版本中构建期间将更新依赖关系版本)。