4

我在 Subversion 中有一个项目设置,其中定义了一些 Subversion Externals。这些 Subversion Externals 引用了其他项目。

示例颠覆布局:

  1. 回购/Project1/主干
  2. 回购/Project2/主干

结帐布局示例:

  1. $WorkingDir\Project1\trunk
  2. $WorkingDir\Project1\trunk\Lib\Project2

TeamCity 允许您将 AssemblyInfo Patcher 构建功能附加到您的构建配置,但似乎不允许排除 Externals。由于 Externals 是单独的项目,我想保留它们的程序集版本或 AssemblyInfo 用不同的模式修补它们。

目前,因为我的构建配置检查了具有完全 Subversion Externals 支持的 Project1,然后应用了 AssemblyInfo Patcher,所以我的 Project1 程序集和我的 Project2 程序集都具有相同的程序集版本——即使我希望它们不同。

有没有办法让 Project1 程序集的版本与 Project2 程序集不同?

4

3 回答 3

6

目前没有办法提供要排除的目录。

根据TeamCity 文档,AssemblyInfo Patcher 仅在构建任何东西之前更新所有找到的 AssemblyInfo 源文件(例如 AssemblyInfo.cs、AssemblyInfo.vb)中的AssemblyVersionAssemblyFileVersion 值,它不会改变现有编译二进制文件的版本。

您提到的外部文件,它们只是二进制文件,还是包括所有内容Project2(例如二进制文件、项目文件、源代码等)?你应该只包括二进制文件。

如果 AssemblyInfo Patcher 不满足您的要求,您将不得不恢复手动操作(例如使用单独的 MSBuild 脚本)并在搜索要更新的 AssemblyInfo 文件时排除外部目录。

于 2012-03-07T23:03:54.673 回答
2

从 TeamCity 9.1 开始,有一个新的文件内容替换器功能。这允许您指定一个模式来匹配您希望对其执行文本替换的文件。

JetBrains 建议使用它而不是 AssemblyInfo Patcher “用于在大量文件中替换更广泛的值”

于 2016-10-11T00:40:06.657 回答
0

我发现一个超级简单的解决方案是将您的 AssemblyInfo.cs 文件重命名为

AssemblyInfoDontChange.cs

于 2017-05-03T13:21:15.087 回答