【发布时间】:2010-07-27 16:35:20
【问题描述】:
有谁知道在 C# 代码中使用 file revision 关键字的语法是什么?我知道如何在 SQL Server 中使用它,但我似乎无法正确使用语法。我已经将该属性添加到要在其中显示版本的文件中。
【问题讨论】:
标签: c# svn syntax tortoisesvn revision
有谁知道在 C# 代码中使用 file revision 关键字的语法是什么?我知道如何在 SQL Server 中使用它,但我似乎无法正确使用语法。我已经将该属性添加到要在其中显示版本的文件中。
【问题讨论】:
标签: c# svn syntax tortoisesvn revision
您的 C# 文件应包含 $LastChangedRevision: $ 以添加 SVN 修订版。但是,您还需要为要在其中扩展该值的文件正确设置 svn:keywords 属性。
例如,以下将产生一个包含修订的字符串。
string revision = "$LastChangedRevision: $";
svn:keywords 属性应在其以空格分隔的值列表中包含LastChangedRevision。
您可以通过编辑 TortoiseSVN 配置为 cs 扩展自动执行此操作。为此,请转到 TortoiseSVN 资源管理器菜单并选择 Settings...。然后在General 选项卡上,单击Subversion configuration file: 旁边的Edit 按钮。
向下滚动并在[auto-props] 部分中添加这样一行(只是一个示例,您可能有更多或更少的关键字,您也可以设置其他属性):
*.cs = svn:keywords=LastChangedDate LastChangedBy LastChangedRevision Id URL;
【讨论】:
您可以调用 SubWCRev.exe 并让它在您的预构建中将版本号写入您的 Resources.resx 中,然后进行清理,这样您就不需要弄乱其他脚本,而 svn 可以不会重复看到 Resources.resx 已更改。
使用 SubWCRev.exe 识别的占位符将字符串资源添加到 Resources.resx 文件,例如:
构建时间 = $WCNOW$
CurrentSVNRevision = $WCREV$
HasLocalModifications = $WCMODS?(检测到本地修改):$
添加以下预构建(以备份您的 Resources.resx 并让 SubWCRev.exe 将占位符替换为所需的值):
复制 /Y "$(ProjectDir)\Properties\Resources.resx" "$(ProjectDir)\Properties\Resources.resx.save"
调用 "C:\Program Files\TortoiseSVN\bin\SubWCRev.exe" "$(SolutionDir)\" "$(ProjectDir)Properties\Resources.resx" "$(ProjectDir)Properties\Resources.resx"
添加以下构建后以恢复您的 Resources.resx:
移动 /Y "$(ProjectDir)\Properties\Resources.resx.save" "$(ProjectDir)\Properties\Resources.resx"
将构建后事件设置为始终运行(即使构建失败)
在代码中任何需要的地方使用 Resources.CurrentSVNRevision 等。
我查看了很多解决方案,然后发现它比我发现的任何其他解决方案都更简单、更强大。希望它可以帮助别人。
【讨论】: