2

我正在 Visual Studio 中开发一个 C# .net 应用程序,我使用 Tortoise SVN 进行版本控制。

我的问题是:有没有办法可以链接我的主项目的汇编版本,例如:

    [assembly: AssemblyVersion("2.2.3.4")]

tortoise SVN 中的修订号。

这样我就可以直接检查修订版 2.2.3.4 而不是检查例如。修订版 52(或任何等于版本 2.2.3.4 的修订版)。

当我尝试获取程序的特定版本时,这将使我更容易,因为我不必弄清楚什么 SVN 修订号等于我正在寻找的软件版本号。

谢谢

4

2 回答 2

6

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

于 2013-07-18T12:11:47.140 回答
0

为什么不使用版本号命名分支?

您可以使用标签并用版本命名每个标签......但标签主要用于已签署的分支。

或者,您可以使用提交挂钩将版本号附加到每个提交消息并搜索 TortoiseSVN 的日志,然后从那里检查。

于 2013-07-18T11:45:23.990 回答