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

Visual Studio 2022结合SubWCRev自动注入SVN版本号问题咨询

解决VS2022中SubWCRev自动生成SVN版本号到程序版本的问题

SubWCRev仍适用,问题出在VS自动生成AssemblyInfo机制

你的预构建事件本身正常(能生成静态类版本字符串),但程序版本仍取csproj值,核心原因是新版VS(.NET Core/.NET 5+项目默认启用)会自动生成AssemblyInfo文件,覆盖了你通过SubWCRev生成的版本信息。只要调整项目配置禁用自动生成,SubWCRev完全可以继续满足需求。

具体解决步骤

1. 禁用VS自动生成AssemblyInfo

修改项目的Project.csproj文件,添加以下配置,阻止VS自动生成AssemblyInfo:

<PropertyGroup>
  <!-- 关闭自动生成AssemblyInfo,改用自定义模板生成 -->
  <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>

2. 调整预构建事件适配多用户

不要写死SubWCRev.exe的绝对路径,通过检测默认安装目录或环境变量来适配不同用户的电脑。以下是预构建事件的示例命令:

:: 优先检测64位和32位TortoiseSVN默认安装路径
set SUBWCREV_PATH="%ProgramFiles%\TortoiseSVN\bin\SubWCRev.exe"
if not exist %SUBWCREV_PATH% set SUBWCREV_PATH="%ProgramFiles(x86)%\TortoiseSVN\bin\SubWCRev.exe"

:: 如果没找到,提示用户安装TortoiseSVN或添加到PATH
if not exist %SUBWCREV_PATH% (
    echo ERROR: SubWCRev.exe未找到,请安装TortoiseSVN或将其添加到系统PATH
    exit /b 1
)

:: 从模板生成AssemblyInfo.cs,使用VS内置宏获取项目路径
%SUBWCREV_PATH% $(ProjectDir) $(ProjectDir)Properties\AssemblyInfo.template.txt $(ProjectDir)Properties\AssemblyInfo.cs
  • $(ProjectDir)是VS预定义宏,自动指向当前项目根目录,无需手动修改路径
  • 检测逻辑覆盖了TortoiseSVN的常见安装路径,适配大多数用户的环境

3. 完善AssemblyInfo模板

确保AssemblyInfo.template.txt包含版本相关的属性,示例内容:

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// 主版本.次版本.修订版本.SVN版本号
[assembly: AssemblyVersion("1.0.0.$WCREV$")]
[assembly: AssemblyFileVersion("1.0.0.$WCREV$")]
// 包含SVN版本和修改状态($WCMODS$会标记是否有未提交修改)
[assembly: AssemblyInformationalVersion("1.0.0.$WCREV$ ($WCMODS$)")]

// 其他AssemblyInfo属性(如公司名、产品名)按需添加
[assembly: AssemblyCompany("Your Company")]
[assembly: AssemblyProduct("Your Product")]

额外注意事项

  • 不要将生成的AssemblyInfo.cs提交到SVN,添加到.svn:ignore列表中,避免版本冲突
  • 如果团队成员没有安装TortoiseSVN,可以将SubWCRev.exe复制到项目的tools目录下,预构建事件改用相对路径调用:$(ProjectDir)tools\SubWCRev.exe
  • 构建后可通过右键项目→属性→查看应用程序版本,验证SVN版本号是否已正确注入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:55:19