如何将软件版本链接到 tortoise svn 修订版
Posted
技术标签:
【中文标题】如何将软件版本链接到 tortoise svn 修订版【英文标题】:How to link software versions to tortoise svn revisions 【发布时间】:2013-07-16 19:18:04 【问题描述】:我正在 Visual Studio 中开发一个 C# .net 应用程序,我使用 Tortoise SVN 进行版本控制。
我的问题是: 有没有办法可以链接我的主要项目的程序集版本,例如:
[assembly: AssemblyVersion("2.2.3.4")]
到龟SVN中的修订号。
这样我就可以直接查看修订版 2.2.3.4 而不是查看例如。修订版 52(或任何等于版本 2.2.3.4 的修订版)。
当我尝试获取程序的特定版本时,这将使我更容易,因为我不必弄清楚什么 SVN 修订号等于我正在寻找的软件版本号。
谢谢
【问题讨论】:
您可以将版本的最后一个数字设置为修订号。所以 2.2.3.1463 将指向修订版 1463。但我不知道版本号的最大限制。在 NAnt 中有一个操作 AssemblyInfo.cs 的命令,对于拥有 NAnt 和构建服务器的情况非常方便...... 【参考方案1】:为什么不用版本号来命名分支?
您可以使用tags 并用版本命名每个标签...但标签主要用于已签署的分支。
或者,您可以使用commit hook 将版本号附加到每个提交消息并搜索 TortoiseSVN 的日志,然后从那里查看。
【讨论】:
【参考方案2】:将Version.cs.tpl
文件添加到您的项目中,内容如下:
namespace Versioning
public static class VersionInfo
public const string Version = "2.2.3.$WCREV$";
为您的项目添加预构建事件:
SubWCRev.exe "$(SolutionDir)\" "$(ProjectDir)Version.cs.tpl" "$(ProjectDir)Version.cs" -f
构建项目。 Version.cs
将在项目文件夹中创建,将其添加到项目中。现在您可以像这样修改您的 AssemplyInfo.cs:
[assembly: AssemblyVersion(Versioning.VersionInfo.Version)]
SubWCRev.exe
是 Tortoise 程序文件夹 (http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html) 中的一个工具。它应该是可访问的(例如在 PATH 变量中设置)。现在,每次项目的修订版本发生变化时,都会在构建后反映在程序集的版本中。
似乎这也适用于您的帖子: Linking Tortoise SVN revision number to assembly version
【讨论】:
+1 这是一个很好的解决方案,唯一的问题是如果开发人员在签入之前没有构建或获取最新版本。 Resulted Version.cs 不应该被签入,它是生成的文件。当您构建时,您会获得带有当前结帐修订版本的组件,这很公平...... @Matthew:如果工作副本有混合修订版,SubWCVer 的 -m 选项会出错。我想这可以用来处理你提到的问题。以上是关于如何将软件版本链接到 tortoise svn 修订版的主要内容,如果未能解决你的问题,请参考以下文章