2

有谁知道在 C# 代码中使用 file revision 关键字的语法是什么?我知道如何在 SQL Server 中使用它,但我似乎无法正确使用语法。我已经将该属性添加到要在其中显示版本的文件中。

4

2 回答 2

5

您的 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;
于 2010-07-27T16:39:25.437 回答
4

你可以调用 SubWCRev.exe 让它在你的 pre-build 中将版本号写入你的 Resources.resx 中,然后再清理,这样你就不需要乱搞其他脚本了,svn 也不会重复看到Resources.resx 已更改。

  1. 使用 SubWCRev.exe 识别的占位符将字符串资源添加到 Resources.resx 文件,例如:

    构建时间 = $WCNOW$

    当前SVNRevision = $WCREV$

    HasLocalModifications = $WCMODS?(检测到本地修改):$

  2. 添加以下预构建(以备份 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"

  3. 添加以下构建后以恢复您的 Resources.resx:

    移动 /Y "$(ProjectDir)\Properties\Resources.resx.save" "$(ProjectDir)\Properties\Resources.resx"

  4. 将构建后事件设置为始终运行(即使构建失败)

  5. 在代码中任何需要的地方使用 Resources.CurrentSVNRevision 等。

我查看了很多解决方案,然后发现这比我发现的任何其他解决方案都更简单、更强大。希望它可以帮助别人。

于 2011-04-14T05:00:20.003 回答