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

示例颠覆布局:

  • repo/Project1/trunk
  • repo/Project2/trunk

  • 结帐布局示例:
  • $WorkingDir\Project1\trunk
  • $WorkingDir\Project1\trunk\Lib\Project2

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

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

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

    最佳答案

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

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

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

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

    关于teamcity - 如何使用 TeamCity AssemblyInfo Patcher 构建功能,但排除 SVN Externals 也被修补?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9607788/

    10-15 08:11