2011-08-24 244 views
1

我已經設置了一個TFS版本來構建和部署一個Web應用程序。我通過TFS構建定義的MSBuild參數傳入MSDeploy參數。第一次這個工作正常。當某人訪問Web應用程序時,其中一個控件(Microsoft圖表控件)會在我添加到解決方案的空目錄中生成一對文件。MSDeploy無法刪除文件

當我進行重建(或持續集成被觸發)時,下一次構建通常會失敗,因爲它無法刪除其中一個生成的文件。當我嘗試手動刪除文件時,它告訴我IIS工作進程正在使用它,並且無法刪除它。

現在爲了構建構建,我不得不每次都手動重新啓動IIS,這對於CI來說並不合適。我已經瀏覽了Microsoft.Web.Publishing.Tasks.dll,並且沒有什麼可以使用MSDeploy重新啓動IIS。

目前我在考慮在解決方案中添加臨時文件的存根可能是解決方案(如果文件是部署的永久部分,MSDeploy可能會關閉進程),或者我可以執行在解決方案文件中使用Exec獲得IIS重置的一些不愉快。

這可能是一個長鏡頭,但有人提出反對這個,並找到一個很好的解決方案?

+0

我最終在解決方案中放置了一個存根文件,現在構建工作正常。 – bucktronic

回答

0

您可以使用MSBuild Extension Pack在部署前自動停止應用程序池。 MSBuild.ExtensionPack.Web命名空間中有幾個任務用於管理IIS,例如停止和啓動應用程序池,刪除應用程序等。

+0

我試圖避免編輯msbuild文件,但它可能是唯一的選擇。我可能會使用MSDeploy任務,但其餘的部署也會使用這些任務。謝謝! – bucktronic