VS2017通过msbuild更改netstandard项目版本

时间:2018-01-02 06:53:10

标签: msbuild nuget visual-studio-2017

在Visual Studio 2017中,netstandard库有一种新格式,可以合理地直接生成nupkg。它看起来像这样:

enter image description here

在csproj中,它看起来像这样:

enter image description here

有没有办法告诉msbuild包版本应该是什么,以便sln中的项目同时更新,以便nuspec最终具有正确的版本依赖?这可能是错误,但是当我使用msbuild /p:Configuration=Release /p:PackageVersion=3.1.7并且原始的手型版本是2.0.0时。如果我有一个alpha和beta项目,beta依赖于alpha,我最终会得到

  

alpha-3.1.7.nupkg

     

beta-3.1.7.nupkg依赖于alpha-2.0.0

也许唯一的方法是在csproj上进行正则表达式替换,但如果我可以避免这种情况会很好。

此外,此PackageVersion方法不会更新真实版本:

enter image description here

1 个答案:

答案 0 :(得分:2)

目前,版本在恢复期间被锁定,而不是在构建期间锁定。

作为解决方法,您可以使用

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问题(目前,计划是在将来的版本中构建期间将更新依赖关系版本。)