Tôi đang cố gắng để tự động hóa quá trình xây dựng/triển khai của chúng tôi.Làm thế nào để MSDeploy một gói trang web được xây dựng đến một trang web trinh nữ IIS
Cho đến nay tôi đang sử dụng:
- một Visual giải pháp Studio 2010 với một dự án chính Web Application (và các dự án phụ thuộc)
- MSBuild
- MSDeploy
- CruiseControl.Net
Vì vậy, sau nhiều lần cãi nhau và nghiến răng, bây giờ tôi có CCNet khởi động một kịch bản MSBuild để xây dựng, đóng gói và triển khai trang web. Các MSBuild kịch bản là dưới đây:
<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>
này tất cả hoạt động tốt chừng nào trên máy mục tiêu đã có một trang web được cấu hình trong IIS. Điều này không cần phải là một trang web "thực" hiện có (nó chỉ có thể là một trình bao).
Trong khi điều này thật tuyệt, tôi thực sự muốn MSDeploy tự động tạo trang web, vì có vẻ như nó có thể làm với một ứng dụng web. Điều này có thể không? Và nếu như vậy bất kỳ trợ giúp sẽ được đánh giá rất nhiều!
Đây cũng là những gì tôi đã tìm thấy - Tôi đã sử dụng msdeploy -verb: sync -source: runCommand = c: \ mycommand.bat, computername = MyServer -dest: auto, trong đó mycommand.bat chứa các lệnh appcmd.exe để tạo trang mới trong IIS – zcrar70