如何让 GitVersion /UpdateAssemblyInfo 与 ASP.NET Core 2.0 项目一起使用

whi*_*rot 8 bamboo gitversion asp.net-core asp.net-core-2.0

我们已经使用 Bamboo 构建服务器有一段时间了,并且安装了 GitVersion,因此可以将其选为构建计划中的任务。运行任务时,我们通常使用 /UpdateAssembleInfo 参数。对于.NET Framework项目,这将使用bamboo版本控制设置更新源中的程序集信息文件,以便.NET程序集具有与我们的Bamboo构建和后续Bamboo部署相同的版本信息,从而使我们能够了解已部署项目的版本通过检查程序集文件属性来确定该字段。这一切都运作得很好。

但是,我们现在正在构建和部署 .NET Core 2.0 解决方案,并发现 GitVersion /UpdateAssemblyInfo 不起作用。

我搜索了 .NET Core 的修复程序,但只能找到涉及使用 project.json 文件的解决方案,该文件不再与 .NET Core 2.0 一起使用(它更改为 *.csproj 文件)。

我查看了http://gitversion.readthedocs.io/en/latest/usage/command-line/我尝试运行

gitversion.exe /UpdateAssemblyInfo MyProjectName.AssemblyInfo.cs /EnsureAssemblyInfo 
Run Code Online (Sandbox Code Playgroud)

其中 MyProjectName 表示 .NET Core 2.0 ..\\obj\release\netcoreapp2.0 文件夹中的 assemblyinfo.cs 文件的实际项目名称后缀。但它没有更新该文件。

我必须假设必须有一个将 GitVersion 与 Bamboo 和 .NET Core 2.0 一起使用的解决方案,但我很难找到一个解决方案。

有任何想法吗?

Set*_*Set 3

作为解决方法,您可以考虑将程序集信息指定为项目属性.csproj

<PropertyGroup>
    <Version>1.2.3.4</Version>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    ...
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

然后在 期间设置值dotnet build。除了其选项之外,该dotnet build命令还接受MSBuild 选项,例如/property

/property:name=value
/p:name=value
设置或覆盖指定的项目级属性,其中name是属性名称,value是属性值。单独指定每个属性,或使用分号或逗号分隔多个属性。

所以你的构建命令将类似于

dotnet build /p:Version=1.2.3.4;AssemblyVersion=1.2.3.4
Run Code Online (Sandbox Code Playgroud)