我正在使用Web Deploy打包和部署我的產品的網站。特別是,我在我的解決方案中有兩個不同的項目,我使用這種方法進行部署。使用MsBuild生成定製的MsDeploy清單(包目標)
我有一個解決方案(一個Windows服務),也需要安裝在Web服務器上的第三個項目。
我知道我可以編寫自定義清單(針對dirPath
,filePath
和runCommand
提供程序),並直接調用MsDeploy進行部署。但我想利用現有的MsBuild任務來儘可能打包我的服務。
我看到是有可能通過的MSBuild目標做清單文件的一些定製:
http://social.msdn.microsoft.com/Forums/en/msbuild/thread/1044058c-f762-456b-8a68-b0863027ce47
特別是通過使用MsDeploySourceManifest
項目。
在戳穿相應的.targets文件後,如果我使用Package
目標,它看起來像contentPath
或iisApp
將被附加到我的清單中。理想情況下,我只想複製程序集(或目錄),可能設置ACL,然後在服務上執行installutil.exe。
是否可以通過編輯我的csproj文件來完全自定義由Package
目標生成的清單?
如果沒有,是否有一個簡單的方法來建立一個新的目標,將執行相當於Package
,但允許我吐出一個完全自定義的清單?
您是否得到了答案? – musica
@Graci:我做到了。本週我正在完成此工作項目,並在完成所有工作後發佈答案。關鍵概念是創建一個自定義的'.targets'文件,使用您的自定義目標來添加'runCommand'提供程序條目以執行自定義批處理文件(用於停止/卸載服務以及安裝/啓動它),添加自定義參數。 xml文件添加到項目中,並設置某些標誌,如「IncludeIisSettingsOnPublish = False」和「IncludeIisSettingsOnPublish = False」。哦,免費的SlowCheetah非網頁轉換擴展也有幫助。 –
@Merlyn:如果你有時間分享你的解決方案,從你最後的評論中聽起來就像你已經覆蓋好了,那將是非常棒的。 –