Iis MSDeploy无法删除文件

Iis MSDeploy无法删除文件,iis,tfs,msbuild,tfsbuild,msdeploy,Iis,Tfs,Msbuild,Tfsbuild,Msdeploy,我已经设置了一个TFS构建来构建和部署一个web应用程序。我通过TFS生成定义的MSBuild参数传入MSDeploy参数。第一次这样做很好。当有人访问web应用程序时,其中一个控件(Microsoft图表控件)会在我添加到解决方案的空目录中生成两个文件 当我转到重建(或触发持续集成)时,下一个生成通常会失败,因为它无法删除生成的文件之一。当我尝试手动删除该文件时,它会告诉我IIS工作进程正在使用它,无法删除它 现在,为了获得构建,我必须每次手动重新启动IIS,这在考虑CI时是不可取的。我浏览了

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

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

现在,为了获得构建,我必须每次手动重新启动IIS,这在考虑CI时是不可取的。我浏览了Microsoft.Web.Publishing.Tasks.dll,没有任何东西可以使用MSDeploy重新启动IIS

目前,我认为在解决方案中添加临时文件的存根可能是一个解决方案(如果该文件是部署的永久部分,那么MSDeploy可能能够关闭该进程),或者我可以在解决方案文件中对Exec执行一些不愉快的操作,以获得IIS重置


这可能很难实现,但是否有人遇到了这个问题并找到了一个很好的解决方案?

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

我试图避免编辑MSBuild文件,但这可能是唯一的选项。不过,我可能会使用MSDeploy任务,因为部署的其余部分也会使用它。谢谢我最后在解决方案中放入了一个存根文件,构建现在正在运行。