我正试图自动化我们的构建/部署过程。如何MSDeploy构建网站包到原始IIS网站
到目前为止,我使用:
- 一个Visual Studio 2010的解决方案与主Web应用程序项目(以及相关项目)
- 的MSBuild
- MSDeploy
- 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能够自动创建网站,因为它似乎可以使用网络应用程序。这可能吗?如果有的话,任何帮助将不胜感激!
这也是我发现的 - 我用msdeploy -verb:sync -source:runCommand = c:\ mycommand.bat,computername = MyServer -dest:auto,其中mycommand.bat包含appcmd.exe命令在IIS中创建新网站 – zcrar70 2011-02-03 16:47:28