如何获得TortoiseSVN 1.7.X修改程序

本文关键字:修改 程序 何获得 TortoiseSVN | 更新日期: 2023-09-27 18:16:43

是否有办法以编程方式获得TortoiseSVN 1.7本地工作副本的当前版本号?我想用它来设置软件安装程序的版本

如何获得TortoiseSVN 1.7.X修改程序

别白费力气了!

而不是处理svnversion或svn info和解析结果,你有TSVN SubWCRev命令行工具,它允许使用(版本化)模板文件,其中一些可变的存储库相关数据被定义为SubWCRev关键字,你的构建工具(或你,手工)只需要运行SubWCRev与所需的模板文件在你的WC上,并在结果文件

中获得安装程序的versioninfo

请记住,Tortoise只不过是Subversion项目的UI客户端。

有一个从命令行自动化乌龟客户端的指南:从命令行自动化乌龟

如果这还不够,只需安装任何在互联网上可用的Subversion客户端,例如:SlikSvn,或者只是原始的和

  1. 移动到工作复制目录

  2. 从命令行svn info --xml > log.xml运行后。您将在log.xml中以XML格式提供所需的所有信息。

    运行svn info $WorkingCopyPath$ --xml > log.xml

希望能有所帮助

TortoiseSVN附带命令行工具svnversion.exe。这个小工具只是打印出本地工作副本的修订号。如果你没有指定工作副本目录,它会检查当前目录是否为工作副本(如果不是,则输出"导出"),如果是,则打印出版本号和标志-例如修改

M

您可以通过使用控制台工具SubWCRev.exe目录获取svn信息:(在您的Visual Studio项目中使用Subversion版本号)[http://www.codeproject.com/KB/architecture/svn_visual_studio.aspx].

另一种获取svn信息的方法是使用特殊的msbuild任务(msbuild Community Tasks)[http://msbuildtasks.tigris.org/]。例如,您可以在每次构建项目时使用新数据更新AssemlyInfo文件。在c# AssemblyInfo文件中插入SVN版本和Build号。

例如,稍后您可以将AssemblyInfo数据嵌入到wix项目中。

经过一番研究,这对我来说是最简单的方法:

  1. 在c#中运行SubWCRev.exe(与Tortoise SVN一起安装)
  2. 从其输出中读取修订号

第一部分:参见http://blogs.msdn.com/b/ericwhite/archive/2008/08/07/running-an-executable-and-collecting-the-output.aspx

第2部分:

string exe = @"C:'Program Files'TortoiseSVN'bin'SubWCRev.exe";
string projectPath = @"C:'MyProject";
RunResults runResults = Program.RunExecutable(exe, projectPath, projectPath);
string lines = runResults.Output.ToString();
Regex regex = new Regex(@"'D*Updated to revision ([0-9]+)'D*");
Match match = regex.Match(lines);
int revision = -1;
if (match.Success)
{
    revision = int.Parse(match.Groups[1].Value);
}

不知道这是否是最好的解决方案。对我来说,这是最不复杂的。我试过http://netpl.blogspot.de/2011/10/reading-revision-number-of-local-copy.html,但没有成功。svn版本不包括在我的Sqlite数据库中,因此不能从文章中提出的任何正则表达式中读取。