团队城市建设期间复制文件

时间:2016-05-18 17:06:26

标签: continuous-integration teamcity webdeploy

我有一个存储在Git中的MVC 5项目。我已经在我们的构建服务器上安装了TeamCity 9.1.7(build 37573),并且当开发人员将代码检入Git时,我已将其设置为成功执行构建。我的目标是如果构建成功,则使用MS Web Deploy部署MVC应用程序。我已经看过一些建议使用Web部署包的教程,但是这些教程已经有六年或更长时间了。这仍然是将成功的TeamCity构建部署到IIS的首选方法吗?

此外,我们已将web.config文件添加到gitignore,原因有很多。 Git作为Web.config.base存放,开发人员将复制到他们自己的web.config文件作为起点。开发人员在首次下拉项目时会将web.config.base文件复制到web.config。我试图在TeamCity中设置命令行任务,将web.config.base文件xcopy写入web.config

Working Directory: (left blank)
Command: xcopy MyMVCProject\Web.config.base MyMVCProject\Web.config

此构建步骤一直失败,退出代码为4。我已将TeamCity构建代理服务设置为以本地管理员身份运行。我已经尝试过如上所述的直接命令文本,作为cmd或bat文件,以及各种不同的路径样式,甚至使用TeamCity工作目录变量,从路径中排除MyMVCProject,包括MyMVCSolution在路径等等。关于为什么xcopy失败的任何想法?

2 个答案:

答案 0 :(得分:1)

WebDeploy仍然是部署ASP.NET Web应用程序的绝佳选择。它甚至与全新的ASP.NET Core框架一起使用。我们不使用TC,但在工作中广泛使用WebDeploy / MSDeploy来部署50多个应用程序。

关于您的配置设置,我从未见过这种方法。我们使用Parameterization来处理每个环境的配置更改(包括本地开发)。如果您担心配置值的安全性,则可以保护具有敏感信息的SetParameter文件,并在源代码管理中包含默认或占位符值的web.config。

http://www.dotnetcatch.com/2014/09/08/parameterizationpreview-visual-studio-extension/

答案 1 :(得分:1)

这与我面临的问题相同。

但最后,我们将master web.config文件放在安装了TeamCity的服务器上。

然后,一旦部署了Project,我就将web.config文件替换为web.config文件,该文件在服务器上存在。 因此web.cofig文件中不存在冲突

您只需在Web部署步骤后再添加一个构建步骤。 在那里你可以使用Xcopy,你可以替换web.config文件

希望这会起作用