C# 如何以编程方式获得OrtoiseSVN 1.7.x修订版?
有没有办法以编程方式获取当前版本号为1.7的本地工作副本?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
我想用它来设置我的软件安装程序的版本。记住,乌龟是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项目。经过一些研究,这对我来说是最简单的方法:
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的命令行版本,非常有用。