我在Subversion中有一个项目设置,它定义了一些Subversion Externals。这些Subversion Externals引用了其他项目。
示例Subversion布局:
示例结帐布局:
TeamCity允许您将AssemblyInfo Patcher构建功能附加到构建配置,但似乎不允许排除外部。由于Externals是单独的项目,我想保留它们的程序集版本,或者AssemblyInfo以不同的模式修补它们。
目前,因为我的构建配置检查了Project1的完整Subversion外部支持,然后应用AssemblyInfo Patcher我的Project1程序集和我的Project2程序集都具有相同的程序集版本 - 即使我希望它们不同。
有没有办法让Project1程序集的版本与Project2程序集不同?
答案 0 :(得分:5)
目前无法提供要排除的目录。
根据TeamCity docs,AssemblyInfo Patcher仅在构建任何内容之前更新所有找到的AssemblyInfo源文件中的AssemblyVersion
和AssemblyFileVersion
值(例如AssemblyInfo.cs,AssemblyInfo.vb) ,它不会改变现有编译二进制文件的版本。
你提到的外部,它们只是二进制文件,还是包括Project2
的所有内容(例如二进制文件,项目文件,源代码等)?你应该只包括二进制文件。
如果AssemblyInfo Patcher不符合您的要求,则必须手动恢复(例如使用单独的MSBuild脚本)并在搜索要更新的AssemblyInfo文件时排除外部目录。
答案 1 :(得分:2)
自TeamCity 9.1以来,有一个新的File Content Replacer功能。这允许您指定模式以匹配您希望执行文本替换的文件。
JetBrains建议使用它而不是AssemblyInfo Patcher"用于替换大量文件中更广泛的值"
答案 2 :(得分:-2)
我发现一个超级简单的解决方案就是将AssemblyInfo.cs文件重命名为
AssemblyInfoDontChange.cs