Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用TeamCity生成后复制文件_Teamcity - Fatal编程技术网

使用TeamCity生成后复制文件

使用TeamCity生成后复制文件,teamcity,Teamcity,我在服务器上安装了TeamCity。我已经成功下载了我的源代码,并通过VisualStudio构建了它。日志显示构建成功。但是,此时,生成的结果位于如下目录中: C:\TeamCity\buildAgent\work\688d47a33b8989b6\site 如何获取上面url的内容并将其复制到同一台机器上的目录中?例如,我想将上面列出的目录的内容放入: C:\WebSites\MySite 我如何在TeamCity内进行复制和粘贴,从而实现真正的持续集成循环 谢谢只需创建一个使用ROBO

我在服务器上安装了TeamCity。我已经成功下载了我的源代码,并通过VisualStudio构建了它。日志显示构建成功。但是,此时,生成的结果位于如下目录中:

C:\TeamCity\buildAgent\work\688d47a33b8989b6\site
如何获取上面url的内容并将其复制到同一台机器上的目录中?例如,我想将上面列出的目录的内容放入:

C:\WebSites\MySite
我如何在TeamCity内进行复制和粘贴,从而实现真正的持续集成循环


谢谢

只需创建一个使用ROBOCOPY或类似工具的步骤,使用命令行步骤类型,然后执行如下操作:

ROBOCOPY . C:\WebSites\MySite *.* /E /MIR /NP
IF %%ERRORLEVEL%% LEQ 3 set errorlevel=0
IF %%ERRORLEVEL%% NEQ 0 EXIT /b %%ERRORLEVEL%%
EXIT 0
最后三行是因为ROBOCOPY返回非零的“ERRORLEVEL”值,即使复制成功。如果ROBOCOPY确实报告失败,您希望TeamCity将构建报告为中断,但您希望忽略表示成功的errorlevel值,因此这3行额外的代码

还请注意,“.”作为第一个参数,TeamCity中的步骤从设置为生成的工作目录的工作目录开始,因此它应该与您的生成目录匹配

如果要避免使用开发web.config文件覆盖生产/测试web.config文件,请将其添加到ROBOCOPY行:

/XF web.config

复制时将忽略web.config。

为什么要这样做。当下一次构建发生时,现有内容会发生什么变化? 如果您正在寻找一种方法来保存生成的文件,那么您应该使用Teamcity。通过这种方式,您可以保留在特定构建中生成的内容。 要完成此操作,只需在常规设置下更新人工制品路径,如下所示:

以下是使用TeamCity 9.1.1获得的公认答案的视觉效果


即使构建失败,这也会产生工件。我假设复制几个文件/文件夹,您复制了前三行,并在末尾保留了
退出0
?设置此项时出现错误的任何人的额外注意事项:从第一行中删除
/NP
部分将在TeamCity日志中更好地反馈错误。