包版本未在VSTS Build和.net标准下更新

时间:2017-09-07 09:45:53

标签: msbuild azure-pipelines .net-standard gitversion

我正在使用VSTS-Build和GitVersion构建.net标准组件。因为它的.net标准我不得不使用" msbuild / t:pack"而不是nuget pack步骤。

这导致包版本号始终为1.0.0,我认为这意味着" PackageVersion"没有被设定。 GitVersion文档说明"当UpdateVersionProperties为true时,设置以下MSBuild属性"但似乎没有选择。

任何人都知道如何让它发挥作用?

修改

项目文件:

enter image description here

我从工作的构建定义中更改了2件事,我禁用了Nuget Pack步骤,并添加了" / t:pack"作为Visual Studio Build步骤中的msbuild参数。

Nuspec文件。

enter image description here

1 个答案:

答案 0 :(得分:2)

您应该让GitVersion任务超前于MSBuild任务。它将生成1.1.0的nuget包版本。但它不会在源代码中更新新版本(1.1.0),因此当您再次构建时,您将始终获得nuget包版本1.1.0。

还有生成nuget包的另一种方法,并根据需要指定包版本。详细构建定义如下:

  • 带有命令restore的.NET Core任务:指定.csproj的路径。
  • 带有命令build的.NET Core任务:指定.csproj的路径。
  • 带有命令pack的.NET Core任务:根据需要指定.csproj的路径和包版本(/p:PackageVersion)。

    enter image description here

    要在nuget包中使用Gitversion变量,只需在.NET Core pack任务中添加参数/p:PackageVersion=$(GitVersion.Major).$(GitVersion.Minor).$(GitVersion.Patch)

    enter image description here

    执行GitVersion任务后会自动生成变量$(GitVersion.Major)$(GitVersion.Minor)$(GitVersion.Patch)