ビルド/デプロイプロセスを自動化しようとしています。
これまで私が使用しているもの:
- メインのWebアプリケーションプロジェクト(および依存プロジェクト)を備えたVisualStudio2010ソリューション
- MSBuild
- MSDeploy
- CruiseControl.Net
そのため、多くのラングリングと歯ぎしりをした後、CCNetは、Webサイトを構築、パッケージ化、および展開するための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で構成されたWebサイトが既に存在する限り、これはすべて正常に機能します。これは、既存の「実際の」サイトである必要はありません(シェルの場合もあります)。
これは素晴らしいことですが、Webアプリで実行できるように、MSDeployにWebサイトを自動的に作成してもらいたいと思っています。これは可能ですか?もしそうなら、どんな助けでも大歓迎です!