我正在使用VSTS-Build和GitVersion构建.net标准组件。因为它的.net标准我不得不使用" msbuild / t:pack"而不是nuget pack步骤。
这导致包版本号始终为1.0.0,我认为这意味着" PackageVersion"没有被设定。 GitVersion文档说明"当UpdateVersionProperties为true时,设置以下MSBuild属性"但似乎没有选择。
任何人都知道如何让它发挥作用?
修改
项目文件:
我从工作的构建定义中更改了2件事,我禁用了Nuget Pack步骤,并添加了" / t:pack"作为Visual Studio Build步骤中的msbuild参数。
Nuspec文件。
答案 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
)。
要在nuget包中使用Gitversion变量,只需在.NET Core pack任务中添加参数/p:PackageVersion=$(GitVersion.Major).$(GitVersion.Minor).$(GitVersion.Patch)
。
执行GitVersion任务后会自动生成变量$(GitVersion.Major)
,$(GitVersion.Minor)
和$(GitVersion.Patch)
。