如何將建構的網站包 MSDeploy 到原始 IIS 網站
我正在嘗試自動化我們的建構/部署過程。
到目前為止,我正在使用:
- 帶有主Web 應用程序項目(和依賴項目)的 Visual Studio 2010 解決方案
- 微軟建構
- 微軟部署
- CruiseControl.Net
因此,經過多次爭論和咬牙切齒,我現在讓 CCNet 啟動了一個MSBuild腳本來建構、打包和部署網站。MSBuild腳本如下:
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="Build"> <MSBuild Projects="$(CCNetWorkingDirectory)\src\Product.sln" Targets="Clean;Rebuild" Properties="Configuration=$(Configuration)" /> </Target> <!--<Target Name="Test" DependsOnTargets="Build"> <MSBuild Projects="$(CCNetWorkingDirectory)\src\Product.Web.Tests\Product.Web.Tests.csproj" Properties="Configuration=$(Configuration);OutputPath=$(CCNetArtifactDirectory)\Tests\" /> <Exec Command="$(MSTestPath) /testcontainer:$(CCNetArtifactDirectory)\Tests\Product.Web.Tests.dll /runconfig:$(CCNetWorkingDirectory)\src\Local.testsettings" ContinueOnError="false" /> </Target>--> <Target Name="Package" DependsOnTargets="Build"> <MSBuild Projects="$(CCNetWorkingDirectory)\src\Product.Web\Product.Web.csproj" Targets="Package" Properties="Configuration=$(Configuration);PackageLocation=$(PackageDir)\Product.zip" /> </Target> <Target Name="Deploy" DependsOnTargets="Package"> <Exec Command=""$(MSDeployPath)" -source:package='$(PackageDir)\Product.zip' -dest:auto,computerName='$(MSDeployComputerName)',includeAcls='False' -verb:sync -setParamFile:$(PackageDir)\Product.SetParameters.xml" ContinueOnError="false" /> </Target>只要在目標機器上已經在 IIS 中配置了一個網站,這一切都可以正常工作。這不需要是現有的“真實”站點(它可能只是一個外殼)。
雖然這很棒,但我真的希望 MSDeploy 能夠自動創建網站,因為它似乎可以使用 Web 應用程序。這可能嗎?如果是這樣,任何幫助將不勝感激!
很確定 MSDeploy 不能那樣做。我過去做過的一件事是有一個 Exec 任務呼叫 appcmd.exe 來拆除/建立一個新網站。MSBuild 社區任務具有一些網站功能以及MSBuild 擴展包。
MSDeploy 有這個能力,你只需要鉤住正確的提供者。
例如,您在目標中使用“自動”提供程序,它基本上表示目標將與您設置為包的源相同(或兼容)。由於包沒有指定其託管環境,因此 msdeploy 不會嘗試對其進行任何操作,它基本上只是從包中復製文件。
您正在呼叫 auto (“-dest: auto”):
-dest:auto,computerName='$(MSDeployComputerName)'要讓 msdeploy 創建站點,您需要使用更具體的提供程序,該提供程序了解“站點”和“應用程序”的概念以及它們如何將包用作網站元素的內容。
我有一段時間沒有這樣做了,所以我不想詳細說明(因為我可能會誤導你),但請查看有關 msdeploy 提供程序的 MSDN 文件。
第一次看auto,你目前的設置。然後看看iisApp和appHostconfig。
http://technet.microsoft.com/en-us/library/dd569040(WS.10).aspx
如果使用得當,我相信這兩個中的一個將為您創建站點/應用程序,並為您提供所需的結果。