Here is an example of how to configure deployment of a web application on a development machine using MSBuild with the Extension Pack:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Run" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<Import Project="$(MSBuildProjectDirectory)\lib\trove\Framework\v2.0\MSBuild.Community.Tasks.Targets" />
<Import Project="$(MSBuildProjectDirectory)\lib\trove\Framework\v3.5\MSBuild.ExtensionPack.tasks" />
<Target Name="Run">
<CallTarget Targets="Clean" />
<CallTarget Targets="Build" />
<CallTarget Targets="Deploy" Condition="'$(registry:HKEY_LOCAL_MACHINE\Software\Microsoft\InetStp@MajorVersion)'=='7'" />
</Target>
<Target Name="Clean">
<MSBuild
Projects="$(MSBuildProjectDirectory)\src\Example.sln"
Targets="Clean"
Properties="Configuration=$(Configuration)"
/>
</Target>
<Target Name="Build">
<MSBuild
Projects="$(MSBuildProjectDirectory)\src\Example.sln"
Targets="Rebuild"
Properties="Configuration=$(Configuration)">
<Output
TaskParameter="TargetOutputs"
ItemName="CodeAssemblies"
/>
</MSBuild>
</Target>
<PropertyGroup>
<WebApplicationName>www.example.net</WebApplicationName>
<WebApplicationPath>$(MSBuildProjectDirectory)\src\Web Applications\Example</WebApplicationPath>
</PropertyGroup>
<Target Name="Deploy">
<MSBuild.ExtensionPack.Web.Iis7Website
TaskAction="CheckExists"
Name="$(WebApplicationName)">
<Output
TaskParameter="Exists"
PropertyName="WebApplicationExists"
/>
</MSBuild.ExtensionPack.Web.Iis7Website>
<MSBuild.ExtensionPack.Web.Iis7Website
TaskAction="Create"
Name="$(WebApplicationName)"
Path="$(WebApplicationPath)"
Port="80"
AppPool="ASP.NET v4.0"
Condition="'$(WebApplicationExists)'=='False'"
/>
<MSBuild.ExtensionPack.Web.Iis7Binding
TaskAction="Remove"
Name="$(WebApplicationName)"
BindingInformation="*:80:"
BindingProtocol="http"
/>
<MSBuild.ExtensionPack.Web.Iis7Binding
TaskAction="Add"
Name="$(WebApplicationName)"
BindingInformation="127.0.0.127:80:$(WebApplicationName)"
BindingProtocol="http"
Condition="'$(WebApplicationExists)'=='False'"
/>
<MSBuild.Community.Tasks.Sleep Milliseconds="3000" />
<MSBuild.ExtensionPack.Web.Iis7Website
TaskAction="Stop"
Name="$(WebApplicationName)"
/>
<MSBuild.Community.Tasks.Sleep Milliseconds="3000" />
<MSBuild.ExtensionPack.Web.Iis7Website
TaskAction="Start"
Name="$(WebApplicationName)"
/>
</Target>
</Project>
No comments:
Post a Comment