我正在創建一個允許應用程序部署自動化的應用程序(https://github.com/twistedtwig/AutomdatedDeployments#readme)。如何在本地或遠程部署一個msbuild壓縮包,而不需要IIS參與
這個想法是一切都在源代碼管理,應用程序文件,應用程序配置以及IIS配置。我的應用程序允許解決方案在構建到開發機器之後自動部署(向sln/proj文件中添加後期構建setp)。它將允許CI服務器自動部署到其機器進行測試,以及CI Server將成功構建推送到QA /測試/生產服務器。我使用msdeploy時遇到的一個問題是需要事先與網站/應用程序一起設置IIS(我的應用程序試圖解決這個問題)。
到目前爲止,我可以通過配置文件自動創建,更新和刪除應用程序池,網站和應用程序。我可以同步文件和文件夾。最後一步是使用msbuild中的/ target:package開關爲Web部署創建乾淨的文件結構。例如,我會運行一個命令,如:
msbuild.exe myMvcSite.csproj /target:clean /target:package /p:Configuration=Release /p:_PackageTempDir=C:\websites\mySite /p:PackageLocation=C:\dropLocation\mySite.zip
這將創建的內部文件路徑一個不錯的zip文件「C_C \ wbesites \ MYSITE」準備就緒(據我所知),以可以同步生產服務器。
我的問題是我如何部署這個zip文件。我希望它獨立於任何IIS信息,即我只是將文件/文件夾推送到某個位置(在本地計算機上供開發人員使用,或者遠程進行測試等)。應用程序池和網站等IIS的設置將分開處理。有些我已經嘗試的命令(及其輸出)低於:
"C:\Program Files\IIS\Microsoft Web Deploy v2\msdeploy.exe" -verb:sync -source:package="C:\Temp\deploy\installer\test\testPackage.zip" -dest:auto
Info: Adding sitemanifest (sitemanifest).
Error: The application pool that you are trying to use has the 'managedRuntimeVersion' property set to 'v2.0'. This application requires 'v4.0'.
Error count: 1.
和
"C:\Program Files\IIS\Microsoft Web Deploy v2\msdeploy.exe" -verb:sync -source:package="C:\website\installer\testPackage.zip" -dest:contentpath=C:\temp\mytest
Error: Source (sitemanifest) and destination (contentPath) are not compatible for the given operation.
Error count: 1.
我試圖讓它解開它具有結構中的文件的第一個命令。它似乎對應用程序池的東西感到不滿,但我不希望它觸及。
第二我試圖解決「自動」位,但這也不高興。
我很努力地找到關於這個過程的很多信息。
我可以看到如何實現這一目標的唯一方法是不使用msdeploy,但創建自己的任務來集成文件結構並執行文件同步我的自我(不理想)。
你的第二個命令接收什麼錯誤? –
錯誤:源(sitemanifest)和目標(contentPath)對於給定的操作不兼容。 錯誤計數:1.(我的問題中的第二個代碼塊)。 – Jon