2013-11-04 62 views
0

我们对TeamCity的工作很新颖。我们有一个构建&部署包装设置,它使用MSBuild/MSDeploy将更改发送到我们的Web服务器。但是,我们有几个问题(在同一篇文章中提出几个问题的道歉)。为了澄清我们的解决方案看起来像这样:TeamCity配置

  • 项目文件夹
    • Web应用程序(包括.csproj的文件包括所谓的“媒体”的文件夹 - 这个文件夹是不是SVN)
    • 库(包括引用的程序)

我们的问题:

  • Libraries文件夹内有一个特定的文件夹,在生成后必须复制到bin目录中(因为程序集重定向)。我们一直使用PostBuild事件,但是这在TeamCity中不起作用。
  • SVN中不包含WebApp文件夹中的“media”文件夹。当TeamCity包执行时,它会删除这个文件夹。我想阻止TeamCity删除这个文件夹。
  • 当我们运行TeamCity任务时,我们得到了teamcity在同步任务期间尝试删除的其中一个文件的ERROR_FILE_IN_USE错误。我已阅读有关使用app_offline.htm文件来解决这个问题 - 但我很不确定。

我要去猜测,其中的一些设置,可以在工作的MSBuild命令行参数 - 我认为这将是更好的,这些存储在文件的csproj,而不是仅仅在TeamCity的,如果它是可能的?

在此先感谢 铝

回答

0

上的信息的几个问题提供

  1. 你能澄清你的生成后命令不工作是什么意思?它是失败还是只是没有达到你的期望?

  2. 你是如何设置后期制作命令的?它是否引用特定的文件路径? TeamCity可以像执行命令行或Visual Studio一样执行MSBuild。

关于MSDeploy文件夹的问题,您可以用跳跃动作配置MSDeploy,这里的另一个帖子的链接描述如何做到这一点 Prevent MSDeploy (selectively) from deleting folders on target IIS server

因为MSDeploy试图部署到一个文件夹中使用通过IIS你也看到了文件锁定问题。有两种解决方案 1.在部署前添加teamcity步骤以停止IIS(使用PowerShell)。这会导致停机。 2.部署到其他文件夹,然后切换IIS以指向您的新文件夹。这是一个更好的解决方案,因为您也有回滚。

更简单的解决方案是使用Octopus Deploy等部署工具部署应用程序。您可以在http://octopusdeploy.com/

了解更多关于Octopus Deploy