Build 团队城市文物;排除单个文件
我有一个TeamCity构建配置,其中包括以下用于发布工件的配置:Build 团队城市文物;排除单个文件,build,continuous-integration,teamcity,Build,Continuous Integration,Teamcity,我有一个TeamCity构建配置,其中包括以下用于发布工件的配置: Source\Builder\bin\Release\*.dll=>release 这工作得很好,但是我想排除一个dll(有很多),并且读到您可以使用+&-运算符来完成这项工作。大致如下: +: Source\Builder\bin\Release\*.dll=>release -: Source\Builder\bin\Release\Builder.* 一旦我添加了这些,就不会发布任何工件,并且我在构建日志中
Source\Builder\bin\Release\*.dll=>release
这工作得很好,但是我想排除一个dll(有很多),并且读到您可以使用+&-运算符来完成这项工作。大致如下:
+: Source\Builder\bin\Release\*.dll=>release
-: Source\Builder\bin\Release\Builder.*
一旦我添加了这些,就不会发布任何工件,并且我在构建日志中得到以下错误(看起来它将+作为路径的一部分计算):
我使用的是7.1.1版,任何人都有任何想法(我不确定这些操作符是否有效)。我已经看到了一个使用MSBuild的解决方案,但是很惊讶这个功能不可用
提前谢谢。我相信你做不到 但是,如果您将另一个构建配置中的工件用作工件依赖项,则可以在其中排除特定文件 设置依赖项时,可以指定负运算符,如下所示:
+:release/**=>Dependencies/SomeProject
-:release/SomeBinary.dll
这是一个可怕的黑客攻击,但让它工作的一种方法是建立一个新的构建配置,该配置将依赖项作为工件依赖项获取,不包括一个二进制文件,然后发布它自己的工件 如中所示,创建新的生成配置并发布:
Dependencies/SomeProject=>release
然后引用此构建配置中的工件,而不是另一个。我们当前的选项是在 然后返回到解决方法 问题提示相同的目标文件夹可以用于多个路径模式 还声明 TeamCity将从第一次出现 模式中的通配符 所以在很多情况下,可以将排斥问题反求为多重包含 例如,我没有隐藏如何从我的模板中排除
-:**/.svn
,而是通过扩展来过滤它们:
templates/**/*.vm => templates
templates/**/*.xsl => templates
派对有点晚了,但仍然没有解决办法 最后,我在项目中添加了最后一个构建步骤。它是命令行>自定义脚本。然后,我使用这些命令删除工件中不需要的文件。这将在工件收集之前运行
del /S /Q "src\apps\*.xml"
del /S /Q "src\apps\*.pdb"
命令说明
+我遇到了同样的问题。您是将人工制品发布到TeamCity的其他地方作为人工制品依赖项使用,还是因为您想在TC外部使用二进制文件?我真的想将人工制品作为外部使用的可下载版本使用。啊,这可能是我读到这篇文章时感到困惑的地方(只是TC的新手,从CruiseControl迁移过来)。这是一个可怕的黑客攻击,但让它工作的一种方法是设置一个新的构建配置,该配置将依赖项作为人工制品依赖项获取,不包括一个二进制文件,然后发布自己的人工制品。想想看,这是针对我的CI构建的。我想我可以复制那里的所有东西,并有一个新的发布配置,只需要它需要的东西。似乎我们只是有相同的想法!不太理想,但我想现在就必须这样了。感谢已在TeamCity 10中修复感谢@oleksii!这为我指明了正确的方向。我需要有三个单独的配置文件,需要根据环境(dev、qa和stage)进行部署。我已将自定义脚本配置为先删除默认配置,然后通过将例如web.dev.config重命名为web.config,将其替换为特定的环境配置。
del /S /Q "src\apps\*.xml"
del /S /Q "src\apps\*.pdb"
/S Delete from all Subfolders (DELTREE)
/Q Quiet mode, do not give a Yes/No Prompt before deleting
* Match any characters