C# 如何以编程方式获得OrtoiseSVN 1.7.x修订版?

C# 如何以编程方式获得OrtoiseSVN 1.7.x修订版?,c#,.net,tortoisesvn,C#,.net,Tortoisesvn,有没有办法以编程方式获取当前版本号为1.7的本地工作副本? 我想用它来设置我的软件安装程序的版本。记住,乌龟是project的UI客户端 在命令行中有一个关于Tortoise客户端的Automaton的指南: 如果还不够,只需安装internet上可用的任何Subversion客户端,例如: ,或只是原版的 移动到工作副本目录 从命令行svn info--xml>log.xml运行之后。您将在log.XML中以XML格式显示所需的所有信息 或 只需运行svn info$WorkingCopyPa

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

记住,乌龟是project的UI客户端

在命令行中有一个关于Tortoise客户端的Automaton的指南:

如果还不够,只需安装internet上可用的任何Subversion客户端,例如: ,或只是原版的

  • 移动到工作副本目录

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

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


  • 希望这有助于

    TortoiseSVN随命令行工具
    svversion.exe
    提供。 这个小小的工具只是打印出本地工作副本的修订号。 如果您未指定工作副本目录,它将检查当前目录是否为工作副本(如果不是,则输出“已导出”),如果是,它将打印出修订号和标记-例如,
    M
    用于修改。

    不要重新发明轮子!
    您没有处理svn或svn信息和解析结果,而是使用TSVN命令行工具,它允许使用(版本化的)模板文件,其中一些与存储库相关的可变数据被定义为和您的构建工具(或您自己,手动)只需在WC上使用所需的模板文件运行SubWCRev,并在结果文件中获取安装程序的版本信息即可

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

    获取svn信息的另一种方法是使用(msbuild社区任务)中提供的特殊msbuild任务[http://msbuildtasks.tigris.org/]. 例如,您可以在每次生成项目时使用新数据更新AssemlyInfo文件。请查看本文:


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

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

  • 在C#中,运行SubWCRev.exe(与Tortoise SVN一起安装)
  • 从输出中读取修订号
  • 第一部分:见

    第二部分:

    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);
    }
    

    不知道这是否是最好的解决方案。对我来说,这是最简单的。我试过了,但没有成功。svn版本未包含在我的Sqlite数据库中,因此无法从文章中建议的任何正则表达式中读取。

    最新版本的Tortoise在安装程序中包含一个复选框,用于同时安装svn的命令行版本,非常有用。