VS2017通过msbuild更改netstandard项目版本

问题描述 投票:0回答:1

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

enter image description here

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

enter image description here

有没有办法告诉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方法不更新实际版本:

enter image description here

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

© www.soinside.com 2019 - 2024. All rights reserved.