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

.NET 6项目中如何通过.csproj设置自定义格式的ProductVersion或FileVersion

.NET 6项目中如何通过.csproj设置自定义格式的ProductVersion或FileVersion

嘿,这个问题我之前折腾过好一会儿!.NET 6里默认的版本属性确实卡数字格式,但完全不用去改编译后的程序集,直接在.csproj里就能搞定自定义ProductVersion,甚至灵活处理FileVersion。

一、设置自定义格式的ProductVersion(完全支持任意字符串)

其实ProductVersion对应的是程序集的AssemblyInformationalVersion属性,这个属性对格式没有严格的数字要求,你可以随便填自定义字符串。直接在你的.csproj文件里添加以下配置:

<PropertyGroup>
  <!-- 这里替换成你想要的自定义版本,比如"v2.1-beta+build456"或者"2024夏季正式版" -->
  <AssemblyInformationalVersion>你的自定义版本字符串</AssemblyInformationalVersion>
</PropertyGroup>

编译完成后,右键点击生成的程序集文件→属性→详细信息,就能看到“产品版本”已经变成你设置的自定义字符串了。

二、自定义FileVersion(注意系统格式限制)

FileVersion对应的是AssemblyFileVersion属性,这个属性受Windows系统限制,必须是x.y.z.w的四段数字格式(每段都是整数),没法直接用纯字母或非数字符号。不过你可以灵活构造符合要求的数字版本,比如固定值或者动态生成:

1. 固定自定义数字版本

直接在.csproj里指定:

<PropertyGroup>
  <FileVersion>2024.5.20.1</FileVersion>
</PropertyGroup>

2. 动态生成数字版本

如果想根据构建日期自动生成版本,可以用MSBuild的内置函数:

<PropertyGroup>
  <!-- 获取当前构建的年、月、日 -->
  <BuildYear>$([System.DateTime]::Now.Year)</BuildYear>
  <BuildMonth>$([System.DateTime]::Now.Month)</BuildMonth>
  <BuildDay>$([System.DateTime]::Now.Day)</BuildDay>
  <!-- 构造四段式数字版本 -->
  <FileVersion>$(BuildYear).$(BuildMonth).$(BuildDay).1</FileVersion>
</PropertyGroup>

三、同时控制多个版本属性的完整示例

如果需要同时控制程序集版本、产品版本和文件版本,可以把这些配置放在一起:

<PropertyGroup>
  <!-- 程序集版本(AssemblyVersion),要求数字格式,影响程序集的标识 -->
  <Version>1.0.0.0</Version>
  <!-- 自定义产品版本,支持任意字符串 -->
  <AssemblyInformationalVersion>v1.0-20240520-正式版</AssemblyInformationalVersion>
  <!-- 自定义文件版本,必须是四段数字格式 -->
  <FileVersion>1.0.20240520.1</FileVersion>
</PropertyGroup>

备注:内容来源于stack exchange,提问作者Master_T

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 12:13:04