有谁知道在 C# 代码中使用 file revision 关键字的语法是什么?我知道如何在 SQL Server 中使用它,但我似乎无法正确使用语法。我已经将该属性添加到要在其中显示版本的文件中。
2 回答
您的 C# 文件应包含$LastChangedRevision: $
以添加 SVN 修订版。但是,您还需要为svn:keywords
要在其中扩展该值的文件正确设置属性。
例如,以下将产生一个包含修订的字符串。
string revision = "$LastChangedRevision: $";
该svn:keywords
属性应LastChangedRevision
在其以空格分隔的值列表中包含 。
您可以cs
通过编辑 TortoiseSVN 配置使扩展自动执行此操作。为此,请转到 TortoiseSVN 资源管理器菜单并选择Settings...
. 然后在General
选项卡上,单击Edit
旁边的按钮Subversion configuration file:
。
向下滚动并在该部分中添加一行这样的行[auto-props]
(只是一个示例,您可能有更多或更少的关键字,您还可以设置其他属性):
*.cs = svn:keywords=LastChangedDate LastChangedBy LastChangedRevision Id URL;
你可以调用 SubWCRev.exe 让它在你的 pre-build 中将版本号写入你的 Resources.resx 中,然后再清理,这样你就不需要乱搞其他脚本了,svn 也不会重复看到Resources.resx 已更改。
使用 SubWCRev.exe 识别的占位符将字符串资源添加到 Resources.resx 文件,例如:
构建时间 = $WCNOW$
当前SVNRevision = $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 等。
我查看了很多解决方案,然后发现这比我发现的任何其他解决方案都更简单、更强大。希望它可以帮助别人。