【问题标题】:Copy file during Team City Build在 Team City Build 期间复制文件
【发布时间】:2016-05-18 17:06:25
【问题描述】:

我有一个 MVC 5 项目存储在 Git 中。我已经在我们的构建服务器上安装了 TeamCity 9.1.7(构建 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 文件复制到 web.config

工作目录:(留空) 命令:xcopy MyMVCProject\Web.config.base MyMVCProject\Web.config

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

【问题讨论】:

    标签: continuous-integration teamcity webdeploy


    【解决方案1】:

    这与我面临的问题相同。

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

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

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

    希望这会奏效

    【讨论】:

    • 出于好奇,我的 xcopy 命令行构建步骤一直失败。我尝试过使用批处理/cmd 文件和直接的命令行语法。你能发布一个你用过的例子吗?是您自己指定工作目录还是让 TC 指定?
    • 检查此图像是否有命令行运行器:screencast.com/t/tWWcdbQa7a 脚本应如下所示:xcopy /y C:_works\Teamcity\webconfigfiles\Demo_Project\Web.config C:_works_projects\DemoProject\websites\API \v1\Web.config 在这里,首先你必须把你的 web.config 放在服务器上,然后你可以替换你的项目发布的那个文件。
    • 感谢您的帮助!
    【解决方案2】:

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

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

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

    【讨论】:

    • 这与安全无关。对于每个构建配置,我们都有一个单独的 web.config 转换。在本地开发时,每个开发人员对我们的应用程序都有不同的数据库和设置。与其每次推送或拉取 Git 更改之前都必须存储 web.config,我们决定停止跟踪 web.config,只跟踪 web.config 的基本副本。您的回答并未完全触及我对 TeamCity 的兴趣,但感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 2013-01-11
    相关资源
    最近更新 更多