【发布时间】:2018-05-18 20:35:00
【问题描述】:
我有一个 ASP.NET 4.6.1 应用程序,我正在尝试使用 TeamCity 和 MSBuild 将其部署到远程 Web 服务器。下面是 TeamCity 中的 MSBuild 构建步骤。
当我在 TeamCity 中运行构建时,它总是在此构建步骤中失败并显示 FILE_IN_USE_ERROR。出错前正在更新的 DLL 通常是相同的,但有时它们是不同的。
[MSBuild 输出] 信息:更新文件 (MyApp\bin\roslyn\Microsoft.VisualBasic.Core.targets)。 [10:35:23]
[MSBuild 输出] 信息:更新文件 (MyApp\bin\roslyn\System.AppContext.dll)。 [10:35:23]
[MSBuild 输出] 信息:更新文件 (MyApp\bin\roslyn\System.Collections.Immutable.dll)。 [10:35:23]
[MSBuild 输出] MSDEPLOY:错误代码:ERROR_FILE_IN_USE [C:\BuildAgent\work\b89cd3dfa447b\MyApp\MyApp.csproj]
我已经阅读了许多文章(here、here、here 和 here)建议我在部署之前删除 app_offline.htm 文件,以便 IIS 可以重新路由流量和文件锁定问题将停止。我试过了,但它不起作用。在此构建步骤中,我仍然遇到文件正在使用的问题。
我还在许多其他讨论中读到,另一种解决方案是停止应用程序池、部署应用程序更新并启动应用程序池。这不是一个现实的解决方案,因为部署通常持续 15 到 20 分钟。另外,这不允许我向任何当前用户显示好消息。
我已经阅读了一段时间,这似乎是部署到 IIS Web 服务器的常见用例。这不应该在不锁定文件的情况下工作吗?有人知道这个问题的其他解决方案吗?
【问题讨论】:
-
有趣...我刚刚开始遇到同样的问题。我正在运行具有类似参数的 MSBuild.exe。我也刚刚更新到最新版本的teamcity
-
我遇到了同样的问题 :( 考虑到 .csproj 文件没有被部署,也没有被使用,甚至在服务器上,这很奇怪。这一定是一个错误。但它是破坏发布!我只是在带有 asp 核心的 IIS 服务器上进行 Web 部署
标签: asp.net iis msbuild teamcity msdeploy