2015-07-11 54 views
2

我在我的服务器上安装了TeamCity。我已经成功下载了我的源代码,并通过Visual Studio进行构建。日志表示构建成功。然而,在这个时候,编译的结果是一个目录,如:用TeamCity编译后复制文件

C:\TeamCity\buildAgent\work\688d47a33b8989b6\site 

如何采取上述网址和警察它们的内容到一个目录在同一台机器上?举例来说,我想借此上面列出的目录中的内容并把它们放在:

C:\WebSites\MySite 

我该怎么办内的TeamCity这复制和粘贴,让我有一个真正的持续集成周期?

谢谢

回答

3

只需创建一个使用ROBOCOPY或类似的步骤,使用命令行步型,只是做这样的事情:

ROBOCOPY . C:\WebSites\MySite *.* /E /MIR /NP 
IF %%ERRORLEVEL%% LEQ 3 set errorlevel=0 
IF %%ERRORLEVEL%% NEQ 0 EXIT /b %%ERRORLEVEL%% 
EXIT 0 

最后3行有因为ROBOCOPY返回非-zero“ERRORLEVEL”值,即使是成功复制。如果ROBOCOPY确实报告失败,您希望TeamCity将构建报告为中断,但您希望忽略表示成功的错误级别值,因此需要添加3条额外的行。

另请注意“。”作为第一个参数,TeamCity中的步骤始于工作目录设置为构建的工作目录,因此它应该与您的构建目录相匹配。

如果你想避免覆盖与发展的web.config文件制作/测试web.config文件中,将其添加到ROBOCOPY行:

/XF web.config 

这将忽略web.config文件时复制。

2

为什么你想这样做。下一次构建发生时,现有内容会发生什么? 如果您正在寻找一种方法来保留生成的文件,您应该使用Teamcity Build Artifacts。通过这种方式,您可以保留特定版本中生成的内容。 所有你需要做的,完成这件事是更新下常规设置的文物路径如下图所示: enter image description here

+0

即使构建失败,这也会产生工件。 –

3

这里是一个视觉接受的答案,采用的TeamCity 9.1.1。

RoboCopy TeamCity