在 Team City Build 期间复制文件

Copy file during Team City Build

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

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

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

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

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

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

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

这与我面临的问题相同。

但是最后,我们把masterweb.config文件放在安装了TeamCity的服务器上。

然后,一旦部署了项目,我就用服务器上已经存在的 web.config 文件替换了 web.config 文件。 所以web.cofig文件不会有冲突

您只需要在 Web 部署步骤之后再添加一个构建步骤。 因为你可以使用 Xcopy 并且你可以替换你 web.config file

希望这会奏效