You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使GitVersion /UpdateAssemblyInfo在ASP.NET Core 2.0+Bamboo环境中生效?

解决GitVersion在ASP.NET Core 2.0项目中无法更新版本信息的问题

我之前在Bamboo上用GitVersion时也碰到过一模一样的问题——.NET Framework项目里/UpdateAssemblyInfo用得顺风顺水,到ASP.NET Core 2.0就完全没效果。后来搞清楚是两者版本配置逻辑不一样,下面给你两种可行的解决方案:

原因分析

ASP.NET Core 2.0(及后续.NET Core版本)默认不再依赖传统的AssemblyInfo.cs存储版本信息,而是把版本属性直接写在.csproj项目文件的<Version>、<AssemblyVersion>节点里。GitVersion的/UpdateAssemblyInfo参数只会扫描修改AssemblyInfo.cs,自然找不到目标,也就没法完成版本更新了。

解决方案一:让GitVersion直接更新.csproj文件

GitVersion专门针对.NET Core项目提供了更新项目文件的参数,把原来的/UpdateAssemblyInfo替换成/UpdateProjectFiles就行。这个参数会自动识别项目里的.csproj文件,修改其中的版本相关节点,保证程序集版本和Bamboo构建版本一致。

在Bamboo的GitVersion任务中,把命令参数改成:

/UpdateProjectFiles

如果需要同时兼容.NET Framework和.NET Core项目,也可以两个参数一起用:

/UpdateAssemblyInfo /UpdateProjectFiles

解决方案二:手动启用AssemblyInfo.cs并禁用自动生成

如果你更习惯用传统的AssemblyInfo.cs管理版本,可以按以下步骤操作:

  • 在项目根目录创建Properties文件夹,添加AssemblyInfo.cs文件,内容示例:
    using System.Reflection;
    [assembly: AssemblyVersion("1.0.0.0")]
    [assembly: AssemblyFileVersion("1.0.0.0")]
    
  • 编辑项目的.csproj文件,添加以下配置,禁用系统自动生成AssemblyInfo的功能:
    <PropertyGroup>
      <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    </PropertyGroup>
    
  • 回到Bamboo的GitVersion任务,继续使用/UpdateAssemblyInfo参数,此时GitVersion就能正常更新你手动添加的AssemblyInfo.cs文件了。

额外注意事项

  • 确保你用的GitVersion版本支持.NET Core(推荐v4.0及以上),旧版本对.NET Core项目的兼容性可能不佳。
  • 构建完成后,可以检查.csproj或AssemblyInfo.cs里的版本值,或者查看生成程序集的属性,确认版本是否和Bamboo构建版本匹配。

内容的提问来源于stack exchange,提问作者whiskytangofoxtrot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:12:25