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

在Visual Studio中构建C#应用时如何将版本信息嵌入可执行文件名

在Visual Studio中构建C#应用时如何将版本信息嵌入可执行文件名

嗨,很高兴你已经搞定了基础的输出文件名配置!要把AssemblyInformationalVersion或者AssemblyVersion里的版本号嵌入到可执行文件名里,比如生成Demo_v1.0.0.0.exe这样的文件,针对Visual Studio 2017 Express和C# WinForms项目,我给你分享两种实用的方法:

方法一:编辑项目文件(.csproj)实现自动命名

这种方法能让构建过程直接生成带版本号的exe,不用额外复制重命名,步骤如下:

  • 右键你的项目,选择「卸载项目」
  • 再次右键已卸载的项目,选择「编辑xxx.csproj」(xxx是你的项目名)
  • 在文件里添加以下XML代码块,放在现有<Project>标签内部即可:
<Target Name="SetVersionedOutputName" BeforeTargets="CoreCompile">
  <!-- 获取当前项目构建的程序集版本号 -->
  <GetAssemblyIdentity AssemblyFiles="$(IntermediateOutputPath)$(TargetFileName)">
    <Output TaskParameter="Assemblies" ItemName="AssemblyIdentities" />
  </GetAssemblyIdentity>
  <!-- 设置输出文件名,把版本号拼接进去 -->
  <PropertyGroup>
    <!-- 这里用AssemblyVersion,如果想用AssemblyInformationalVersion,可以改成%(AssemblyIdentities.InformationalVersion) -->
    <VersionNumber>%(AssemblyIdentities.Version)</VersionNumber>
    <OutputName>Demo_v$(VersionNumber)</OutputName>
  </PropertyGroup>
</Target>
  • 保存文件,右键项目选择「重新加载项目」
    下次构建时,输出的可执行文件就会自动带上版本号啦。如果想用AssemblyInformationalVersion的版本,只需要把<VersionNumber>那行的Version改成InformationalVersion就行。

方法二:用后构建事件重命名文件

如果不想编辑项目文件,也可以用Visual Studio的构建事件来实现,步骤更直观:

  • 右键项目选择「属性」,切换到「生成事件」标签页
  • 在「后生成事件命令行」里输入以下PowerShell命令(PowerShell处理版本号比批处理更灵活):
# 从AssemblyInfo.cs中读取AssemblyInformationalVersion的版本值
$version = (Get-Content "$(ProjectDir)Properties\AssemblyInfo.cs" | Select-String 'AssemblyInformationalVersion\("([^"]+)"\)').Matches.Groups[1].Value
# 重命名生成的可执行文件
Rename-Item -Path "$(TargetPath)" -NewName "Demo_v$version.exe"
  • 如果你想使用AssemblyVersion的版本,只需要把命令里的AssemblyInformationalVersion替换成AssemblyVersion即可
  • 点击「确定」保存设置,下次构建完成后,程序会自动把生成的exe重命名为带版本号的版本

小提示

  • 注意版本号里如果有特殊字符(比如预发布标签1.0.0-beta),重命名时可能需要调整命令,避免出现不合法的文件名
  • 测试前可以先清理项目(菜单「生成」->「清理解决方案」),再重新构建,确保文件名更新生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 08:42:46