我正在使用 TortoiseSVN 和 Visual Studio 2008。有没有办法在每个构建中使用 svn 的版本更新我的项目的 assemblyinfo.cs ?

例如,1.0.0.[svn 的版本] -> 1.0.0.12

有帮助吗?

解决方案

你可以使用TortoiseSVN附带的 SubWCRev 工具单独提供)。

从命令行运行它或使用 COM-它提供的对象

SubWCRev命令行工具替换文件中的关键字来自您的svn工作副本的信息。文档中显示了示例

其他提示

你可以使用 $Rev$ svn 关键字 但这将为您提供文件的最后修订版本,我认为您想要获得 HEAD 修订号。

看看这个问题:

您如何看待Visual Studio addin 呢?

是的,您可以添加一个调用脚本的预构建事件

  • 来电 svn info 提取当前版本号(如果您之前进行过更新,可以直接包含关键字 $Revision$ 在文件中,还检查 这个帖子);
  • 相应地修改您的 Properties\AssemblyInfo.cs 文件。

我通常做的是在构建项目时转换 AssemblyInfo.cs 模板。不幸的是,该脚本必须使 $Revision$ 的形式适应该文件的语法。

有趣的属性是(其中模板字符串位于“$”之间):

[assembly: AssemblyVersion("$v$.$build$.$Last Changed Rev$")]
[assembly: AssemblyFileVersion("$v$.$build$.$Last Changed Rev$")]

编辑: svn info 是标准 SVN 客户端的一部分,而不是另一篇文章中指出的 TortoiseSVN。不过安装很容易。然而,TortoiseSVN 附带 SubWCRev.exe 它通过关键字替换来转换文件,因此如果您更新本地副本,它就会起作用。

在Visual Studio 2008中,您可以定义可以启动脚本或小程序的预构建事件。在此脚本或程序中,您可以使用 svnversion 命令获取存储库修订,然后解析AssemblyInfo.cs并将版本号修改为您想要的版本号。

我不确定TortoiseSVN是否带有svnversion,但它确实附带了 Windows由CollabNet提供的SVN构建

我为 SVN版本插件 .codeplex.com /“rel =”nofollow noreferrer“>构建版本增量项目(以popester的答案命名)。此SVN插件将从您的工作副本中提取最新的更改修订版号,并允许您在您的版本号中使用它,这应该完全符合您的要求。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top