【问题标题】:MSDeploy not able to delete filesMSDeploy 无法删除文件
【发布时间】:2011-11-03 00:59:04
【问题描述】:

我已经设置了 TFS 构建来构建和部署 Web 应用程序。我通过 TFS 构建定义的 MSBuild 参数传入 MSDeploy 参数。第一次这工作正常。当有人访问 Web 应用程序时,其中一个控件(Microsoft 图表控件)会在我添加到解决方案的空目录中生成几个文件。

当我去重建(或触发持续集成)时,下一个构建通常会失败,因为它无法删除生成的文件之一。当我尝试手动删除文件时,它告诉我 IIS 工作进程正在使用它并且无法删除。

现在要构建构建,我每次都必须手动重新启动 IIS,考虑到 CI,这是不可取的。我查看了 Microsoft.Web.Publishing.Tasks.dll 并没有使用 MSDeploy 重新启动 IIS。

目前我认为在解决方案中添加临时文件的存根可能是一个解决方案(如果文件是部署的永久部分,MSDeploy 将能够关闭该进程)或者我可以做一些在解决方案文件中使用 Exec 来重置 IIS 不愉快。

这可能是一个很长的尝试,但有没有人反对这个并找到了一个很好的解决方案?

【问题讨论】:

  • 我最终在解决方案中放置了一个存根文件,现在构建工作正常。

标签: iis tfs msbuild tfsbuild msdeploy


【解决方案1】:

您可以使用MSBuild Extension Pack 在部署前自动停止应用程序池。 MSBuild.ExtensionPack.Web 命名空间中有几个任务来管理 IIS,例如停止和启动应用程序池、删除应用程序等。

【讨论】:

  • 我试图避免编辑 msbuild 文件,但这可能是唯一的选择。我可能会使用 MSDeploy 任务,因为其余的部署也使用它。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-08
  • 2014-02-07
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多