Mon*_*n69 13 teamcity continuous-integration build
我有一个TeamCity构建配置,其中包含以下内容来发布工件:
Source\Builder\bin\Release\*.dll=>release
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我想排除一个DLL(有很多),并已阅读,你可以使用+& - 运算符来做到这一点.有点像:
+: Source\Builder\bin\Release\*.dll=>release
-: Source\Builder\bin\Release\Builder.*
Run Code Online (Sandbox Code Playgroud)
只要我添加这些工件,就不会发布任何工件,并且我在构建日志中遇到以下错误(看起来它正在计算+作为路径的一部分):
[Publishing artifacts] Collecting files to publish [+:Source\Builder\bin\Release\*.dll=>release]
[Publishing artifacts] Artifacts path +:Source/Builder/bin/Release/*.dll not found
Run Code Online (Sandbox Code Playgroud)
我正在使用版本7.1.1,任何人的想法(我不确定这些运算符是否有效).我已经看到了MSBuild的解决方案,但我很惊讶这个功能不可用.
提前致谢.
我不相信你能.
但是,如果您将另一个构建配置中的工件用作工件依赖项,则可以在那里排除特定文件.
设置依赖项时,可以指定负运算符,如下所示:
+:release/**=>Dependencies/SomeProject
-:release/SomeBinary.dll
Run Code Online (Sandbox Code Playgroud)
这是一个可怕的黑客攻击,但是你可以让它工作的一种方法是设置一个新的构建配置,它将依赖关系作为工件依赖项,排除一个二进制文件,然后发布它自己的工件.
在中,创建一个新的构建配置并发布:
Dependencies/SomeProject=>release
Run Code Online (Sandbox Code Playgroud)
然后引用此构建配置中的工件而不是另一个.
聚会有点晚了,但仍然没有解决......
我最终向项目添加了最后一个构建步骤。它是命令行>自定义脚本。然后我使用此命令删除了工件中不需要的文件。这在工件收集之前运行。
del /S /Q "src\apps\*.xml"
del /S /Q "src\apps\*.pdb"
Run Code Online (Sandbox Code Playgroud)
del
命令解释
/S Delete from all Subfolders (DELTREE)
/Q Quiet mode, do not give a Yes/No Prompt before deleting
* Match any characters
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8974 次 |
最近记录: |