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

如何在.NET中仅维护一处版本,设置NuGet包版本并保留自动递增?

解决方案

可以通过MSBuild属性实现版本信息的单一维护,同时满足NuGet包版本固定前缀、程序集自动版本的需求,步骤如下:

  1. 修改.csproj文件,定义共享版本前缀
    在项目的.csproj文件中添加以下配置,把版本前缀集中在这里维护:
<PropertyGroup>
  <!-- 只需要修改这里的VersionPrefix值,就是你要的NuGet包版本前缀 -->
  <VersionPrefix>0.5</VersionPrefix>
  <!-- NuGet包版本直接使用这个前缀 -->
  <Version>$(VersionPrefix)</Version>
  <!-- 让程序集版本自动生成:前缀+自动修订号 -->
  <AssemblyVersion>$(VersionPrefix).*</AssemblyVersion>
  <!-- 可选:文件版本也使用自动生成规则,和程序集版本保持一致 -->
  <FileVersion>$(VersionPrefix).*</FileVersion>
</PropertyGroup>
  1. 清理AssemblyInfo.cs中的重复配置
    删除AssemblyInfo.cs里的[assembly: AssemblyVersion("0.5.*")]以及[assembly: FileVersion]相关行。SDK风格的C#项目默认会根据.csproj里的属性自动生成AssemblyInfo的版本信息,手动配置会产生冲突。

这样设置后:

  • NuGet包的版本就是你定义的VersionPrefix值(比如示例中的0.5)
  • 程序集的AssemblyVersion会自动生成类似0.5.1234.5678的版本号(*号会被MSBuild自动替换为基于编译时间的修订号)
  • 所有版本相关的修改只需要在.csproj的VersionPrefix里操作,不用两处维护

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:02:41