MSBuild Task for deploying a WebSite

By | 2006-01-17

In the MSBuild Tasks there is a Task for Copy-ing a File or a Collection of Files ( ItemGroup ). But as it turns out the Exclude filtering of the ItemGroup is too limited to have a good deployment of a WebSite/WebApplication.

The guys of Microsoft UK have made a distribution available of the Microsoft.Sdc.Tasks ( see GotDotNet ) but their Folder.Copy lacks any Exclude filtering.

That’s why I created our own CopyFolder. The Exclude filter can be used in 2 ways:

  • .extention -> any file with that extention will be excluded from the copy
  • SomeString -> any file where the filename (with relative path) contains SomeString will be excluded

Binaries:

TamTam.Deployment.Tasks.zip (4,63 KB)

MSBuild project file:

<Project DefaultTargets="Full" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<Import Project="TamTam.Deployment.Tasks" />

<PropertyGroup>

<SourcesForWebSite>C:BuildLabbuildwww</SourcesForWebSite>

<WebExcludes>.cs;.txt;.scc;csproj;.resx;.resources;.cache;.pdb;App_;obj</WebExcludes>

<DestForWebSite>serverfolder</DestForWebSite>

</PropertyGroup>

<Target Name="Full" DependsOnTargets="

WebSite" />

<Target Name="WebSite">

<Message Text="Deploying WebSite" />

<CopyFolder
Source="$(SourcesForWebSite)"
Destination="$(DestForWebSite)"
SkipUnchangedFiles="true"
Exclude="$(WebExcludes)" />

</Target>

</Project>



Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.