AssemblyInfo.cs subversion和TortoiseSVN

Bab*_*bak 17 c# svn tortoisesvn assemblyinfo

我正在使用TortoiseSVN和Visual Studio 2008.有没有办法在每个版本中用svn的版本更新我的项目的assemblyinfo.cs?

例如,1.0.0.[svn的版本] - > 1.0.0.12

Ste*_*fan 13

您可以使用TortoiseSVN附带的SubWCRev工具(也可单独购买).

从命令行运行它或使用它提供的COM-Object.

SubWCRev命令行工具使用 svn工作副本中的信息替换文件中的关键字.文档中显示了一个示例.

  • 但是,如果修改了AssembyInfo.cs,它将在工作副本中显示为修改.如果您提交并重建它会再次更改.如何在不修改源代码管理下的文件的情况下完成此操作? (5认同)
  • @Assaf:你保持一个AssemblyInfo.template.cs提交,这是从你的msbuild每次构建生成的AssemblyInfo.cs,你通过忽略它来使它远离subversion. (5认同)

Mar*_*ell 7

我在构建脚本中执行此操作:

<SvnInfo LocalPath=".">
  <Output TaskParameter="Revision" PropertyName="BuildRev" />
</SvnInfo>
<FileUpdate Files="protobuf-net\Properties\AssemblyInfo.cs"
  Regex='(\[\s*assembly:\s*AssemblyVersion\(\s*"[^\.]+\.[^\.]+)\.([^\.]+)(\.)([^\.]+)("\)\s*\])'
  ReplacementText='$1.$2.$(BuildRev)$5' />
Run Code Online (Sandbox Code Playgroud)

使用社区构建任务.这基本上将正则表达式应用于AssemblyInfo.cs,用svn修订版替换当前版本.