<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Kaokart's Blog</title>
	<atom:link href="http://kaokart.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://kaokart.wordpress.com</link>
	<description>Just talking about stuff.</description>
	<lastBuildDate>Tue, 26 May 2009 23:27:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='kaokart.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Kaokart's Blog</title>
		<link>http://kaokart.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://kaokart.wordpress.com/osd.xml" title="Kaokart&#039;s Blog" />
	<atom:link rel='hub' href='http://kaokart.wordpress.com/?pushpress=hub'/>
		<item>
		<title>MSBuild Example</title>
		<link>http://kaokart.wordpress.com/2009/05/26/msbuild-example/</link>
		<comments>http://kaokart.wordpress.com/2009/05/26/msbuild-example/#comments</comments>
		<pubDate>Tue, 26 May 2009 23:25:00 +0000</pubDate>
		<dc:creator>kaokart</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Automated]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[MSBuild]]></category>

		<guid isPermaLink="false">http://blog.kaokart.com/?p=97</guid>
		<description><![CDATA[It&#8217;s been a while since my last blog post, but as promised here is an example of a MSBuild script. I have made a simple .NET 2.0 web application utilizing the MSBuild script.  The web application source code can be downloaded here. Web Application Folders and Files Config &#8211; contains the environment (dev, test, prod), [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaokart.wordpress.com&amp;blog=6612471&amp;post=97&amp;subd=kaokart&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since my last blog post, but as promised here is an example of a MSBuild script. I have made a simple .NET 2.0 web application utilizing the MSBuild script.  The web application source code can be downloaded <a title="here" href="http://www.kaokart.com/files/MSBuildExample.zip">here</a>.</p>
<h3><strong>Web Application Folders and Files<br />
</strong></h3>
<p><strong><img class="size-full wp-image-98 alignnone" title="web_app_folder" src="http://kaokart.files.wordpress.com/2009/05/web_app_folder.jpg?w=655" alt="web_app_folder"   /><br />
</strong></p>
<ul>
<li><strong>Config</strong> &#8211; contains the environment (dev, test, prod), user, and machine configurations</li>
<li><strong>Core</strong> &#8211; contains the application&#8217;s source code</li>
<li><strong>Library</strong> &#8211; contains the third party libraries and tools used by the application</li>
<li><strong>PrecompiledWeb</strong> &#8211; generated folder containing binaries for the web application</li>
<li><strong>Publish</strong> &#8211; generated folder containing NCover and NUnit results</li>
<li><strong>Web &#8211; </strong>contains the web application files</li>
<li><strong>build.bat</strong> &#8211; batch file used to execute MSBuild script</li>
<li><strong>main.build </strong>- MSBuild script</li>
</ul>
<h3>Executing MSBuild Script</h3>
<p>To simplify running the MSbuild script, a batch file has been created to allow the user to specify the MSBuild target to execute and which configurations to use.</p>
<p><img class="alignnone size-full wp-image-113" title="msbuild_run" src="http://kaokart.files.wordpress.com/2009/05/msbuild_run1.jpg?w=655" alt="msbuild_run"   /></p>
<p><em>Usage</em></p>
<p style="padding-left:30px;">build [target] [environment]</p>
<p style="padding-left:60px;">[target] &#8211; Specifies the MSBuild target to execute</p>
<p style="padding-left:60px;">[environment] &#8211; Specifies the environment (dev, test, prod)</p>
<p><em>Notes</em></p>
<ul>
<li>If the environment is not specified, the build will attempt to use the configurations from &lt;user&gt;.config
<ul>
<li>if &lt;user&gt;.config does not exist, it will attempt to use the configurations from &lt;machine&gt;.config</li>
<li>if &lt;machine&gt;.config does not exist, it will use dev.config</li>
</ul>
</li>
<li>If the target is not specified, the build will use the <em>build<strong> </strong></em>target</li>
</ul>
<h3>MSBuild Targets</h3>
<p>These are the available targets for the MSBuild file:</p>
<ul>
<li><strong>Config</strong> &#8211; generates the Web.config and App.config based off the specified environment</li>
<li><strong>Clean </strong>- performs a <em>Clean</em> on the solution and deletes the generated folders</li>
<li><strong>Prepare</strong> &#8211; generates the folders for NUnit and NCover results</li>
<li><strong>Compile </strong>- performs a <em>Build</em> on the solution</li>
<li><strong>Test<em> </em></strong>- runs NUnit for the Unit Tests</li>
<li><strong>Coverage</strong> &#8211; runs NCover for the code coverage</li>
<li><strong>Build </strong>- default target</li>
<li><strong>Cruise </strong>- Cruise Control target</li>
<li><strong>CleanDeploy</strong> &#8211; removes the folders and files from the deployment folder</li>
<li><strong>PrepareDeploy</strong> &#8211; performs a <em>Build</em> on the solution</li>
<li><strong>Deploy </strong>- deploys the application&#8217;s binaries to the deployment folder</li>
</ul>
<p>Please take a look over the MSBuild file and feel free to contact me with any feedback.  In my next post, I will walkthrough the elements in the MSBuild file.</p>
<p><strong> </strong></p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:1120px;width:1px;height:1px;"><!--[if gte mso 9]&gt;  Normal 0   false false false        MicrosoftInternetExplorer4  &lt;![endif]--><!--[if gte mso 9]&gt;   &lt;![endif]--><!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --><!--[if gte mso 10]&gt; &lt;!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:&quot;Table Normal&quot;; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:&quot;&quot;; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:&quot;Times New Roman&quot;; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} --> <!--[endif]--></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;!&#8211;</span><span style="font-size:8pt;font-family:&quot;color:green;"> Application Configurations </span><span style="font-size:8pt;font-family:&quot;color:blue;">&#8211;&gt;</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">PropertyGroup</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">SolutionFileName</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">MSBuildExample.sln<span style="color:blue;">&lt;/</span><span style="color:#a31515;">SolutionFileName</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">WebDir</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">Web<span style="color:blue;">&lt;/</span><span style="color:#a31515;">WebDir</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;/</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">PropertyGroup</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;!&#8211;</span><span style="font-size:8pt;font-family:&quot;color:green;"> Test Assemblies </span><span style="font-size:8pt;font-family:&quot;color:blue;">&#8211;&gt;</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">ItemGroup</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">TestAssemblies</span><span style="font-size:8pt;font-family:&quot;color:blue;"> </span><span style="font-size:8pt;font-family:&quot;color:red;">Include</span><span style="font-size:8pt;font-family:&quot;color:blue;">=</span><span style="font-size:8pt;font-family:&quot;">&#8220;<span style="color:blue;">UnitTests\bin\Debug\MSBuildExample.UnitTests.dll</span>&#8220;<span style="color:blue;"> /&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;/</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">ItemGroup</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;!&#8211;</span><span style="font-size:8pt;font-family:&quot;color:green;"> Build Configurations </span><span style="font-size:8pt;font-family:&quot;color:blue;">&#8211;&gt;</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">PropertyGroup</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">Default</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">default<span style="color:blue;">&lt;/</span><span style="color:#a31515;">Default</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">Dev</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">dev<span style="color:blue;">&lt;/</span><span style="color:#a31515;">Dev</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">Test</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">test<span style="color:blue;">&lt;/</span><span style="color:#a31515;">Test</span><span style="color:blue;">&gt; </span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">Prod</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">prod<span style="color:blue;">&lt;/</span><span style="color:#a31515;">Prod</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">ConfigDir</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">Config<span style="color:blue;">&lt;/</span><span style="color:#a31515;">ConfigDir</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">DevConfig</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">$(ConfigDir)\$(Dev).build<span style="color:blue;">&lt;/</span><span style="color:#a31515;">DevConfig</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">TestConfig</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">$(ConfigDir)\$(Test).build<span style="color:blue;">&lt;/</span><span style="color:#a31515;">TestConfig</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">ProdConfig</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">$(ConfigDir)\$(Prod).build<span style="color:blue;">&lt;/</span><span style="color:#a31515;">ProdConfig</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">UserConfig</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">$(ConfigDir)\$(USERNAME).build<span style="color:blue;">&lt;/</span><span style="color:#a31515;">UserConfig</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">MachineConfig</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">$(ConfigDir)\$(COMPUTERNAME).build<span style="color:blue;">&lt;/</span><span style="color:#a31515;">MachineConfig</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">PrecompiledWebDir</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">PrecompiledWeb<span style="color:blue;">&lt;/</span><span style="color:#a31515;">PrecompiledWebDir</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">WebOutputDir</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">$(PrecompiledWebDir)\$(WebDir)<span style="color:blue;">&lt;/</span><span style="color:#a31515;">WebOutputDir</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">PublishDir</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">Publish<span style="color:blue;">&lt;/</span><span style="color:#a31515;">PublishDir</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">NUnitPublishDir</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">$(PublishDir)\NUnit<span style="color:blue;">&lt;/</span><span style="color:#a31515;">NUnitPublishDir</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">NCoverPublishDir</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">$(PublishDir)\NCover<span style="color:blue;">&lt;/</span><span style="color:#a31515;">NCoverPublishDir</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;/</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">PropertyGroup</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"> </span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;!&#8211;</span><span style="font-size:8pt;font-family:&quot;color:green;"> Tool Configurations </span><span style="font-size:8pt;font-family:&quot;color:blue;">&#8211;&gt;</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">PropertyGroup</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">NCoverExplorerToolPath</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">Library\NCoverExplorer<span style="color:blue;">&lt;/</span><span style="color:#a31515;">NCoverExplorerToolPath</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">NCoverToolPath</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">Library\NCover<span style="color:blue;">&lt;/</span><span style="color:#a31515;">NCoverToolPath</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">NUnitToolPath</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span><span style="font-size:8pt;font-family:&quot;">Library\NUnit<span style="color:blue;">&lt;/</span><span style="color:#a31515;">NUnitToolPath</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:&quot;color:blue;"><span> </span>&lt;/</span><span style="font-size:8pt;font-family:&quot;color:#a31515;">PropertyGroup</span><span style="font-size:8pt;font-family:&quot;color:blue;">&gt;</span></p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kaokart.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kaokart.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kaokart.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kaokart.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kaokart.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kaokart.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kaokart.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kaokart.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kaokart.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kaokart.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kaokart.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kaokart.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kaokart.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kaokart.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaokart.wordpress.com&amp;blog=6612471&amp;post=97&amp;subd=kaokart&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kaokart.wordpress.com/2009/05/26/msbuild-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e13b516e220fc55b039d5d3328649378?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kaokart</media:title>
		</media:content>

		<media:content url="http://kaokart.files.wordpress.com/2009/05/web_app_folder.jpg" medium="image">
			<media:title type="html">web_app_folder</media:title>
		</media:content>

		<media:content url="http://kaokart.files.wordpress.com/2009/05/msbuild_run1.jpg" medium="image">
			<media:title type="html">msbuild_run</media:title>
		</media:content>
	</item>
		<item>
		<title>Automated Builds</title>
		<link>http://kaokart.wordpress.com/2009/03/26/automated-builds/</link>
		<comments>http://kaokart.wordpress.com/2009/03/26/automated-builds/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 17:24:48 +0000</pubDate>
		<dc:creator>kaokart</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Automated]]></category>
		<category><![CDATA[Build]]></category>

		<guid isPermaLink="false">http://kaokart.wordpress.com/?p=57</guid>
		<description><![CDATA[I’ve been on several different projects across various organizations and one thing that I notice consistently is that they do not have an automated build in place for their projects.  Either the developers do not understand the concepts and benefits behind using an automated build or they choose to neglect it because it’s extra work.  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaokart.wordpress.com&amp;blog=6612471&amp;post=57&amp;subd=kaokart&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I’ve been on several different projects across various organizations and one thing that I notice consistently is that they do not have an automated build in place for their projects.  Either the developers do not understand the concepts and benefits behind using an automated build or they choose to neglect it because it’s extra work.  Automated builds is an important aspect of a project similar to source control.</p>
<p><a rel="attachment wp-att-71" href="http://kaokart.wordpress.com/2009/03/26/automated-builds/robot1/"><img class="size-medium wp-image-71 alignright" title="robot" src="http://kaokart.files.wordpress.com/2009/03/robot1.jpg?w=220&#038;h=326" alt="robot" width="220" height="326" /></a></p>
<p>What would an automated build do?</p>
<ul>
<li>Clean build artefacts</li>
<li>Build the application binaries</li>
<li>Tear down and rebuild development and test databases</li>
<li>Run Unit Tests, Integration Tests, etc.</li>
<li>Run Code Coverage, Metrics, etc.</li>
<li>Deploy application to specific environment (i.e. dev, test, prod)</li>
<li>Recompile libraries and binaries used by the application</li>
<li>Notifications</li>
<li>Version application binaries</li>
<li>Branching / Releasing your application</li>
<li>Perform daily builds (via scheduled task or Cruise Control .NET)</li>
</ul>
<p>At the beginning of the project, spend a day or two setting up an automated build to at least clean, compile, and test your application.  As the project matures, when required, you can add extra features such as code coverage, deployment, etc to the build script.  Trust me, starting off the project with an automated build will save you a lot of time and headaches as the project continues.</p>
<p>The benefits of using automated builds are:</p>
<ul>
<li>Reduce time and effort to build the application</li>
<li>Reliable builds of your application at any time</li>
<li>Avoid tedious, repetitive, and error-prone work</li>
<li>Reduce the risk of creating unknown dependencies</li>
</ul>
<p>Some tools to help with automated builds are:</p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/0k6kkbsd.aspx" target="_blank">MSBuild</a> (Bundled with .NET Framework)</li>
<li><a href="http://nant.sourceforge.net/" target="_blank">NAnt</a> (Open Source)</li>
<li><a href="http://ccnet.thoughtworks.com/" target="_blank">Cruise Control.NET</a> (ThoughtWorks)</li>
<li><a href="http://www.jetbrains.com/teamcity/" target="_blank">TeamCity</a> (JetBrains)</li>
<li><a href="http://msdn.microsoft.com/en-us/teamsystem/default.aspx" target="_blank">Team Foundation Server</a> (Microsoft)</li>
</ul>
<p>* The tools stated above are for projects built on the .NET Framework.  There are similar and/or equivalent tools for other development platforms.</p>
<p>Hopefully in the next week or two, if time permits, I will post some <a href="http://nant.sourceforge.net/" target="_blank">NAnt</a> and <a href="http://msdn.microsoft.com/en-us/library/0k6kkbsd.aspx" target="_blank">MSBuild</a> samples.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kaokart.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kaokart.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kaokart.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kaokart.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kaokart.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kaokart.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kaokart.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kaokart.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kaokart.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kaokart.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kaokart.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kaokart.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kaokart.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kaokart.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaokart.wordpress.com&amp;blog=6612471&amp;post=57&amp;subd=kaokart&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kaokart.wordpress.com/2009/03/26/automated-builds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e13b516e220fc55b039d5d3328649378?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kaokart</media:title>
		</media:content>

		<media:content url="http://kaokart.files.wordpress.com/2009/03/robot1.jpg?w=206" medium="image">
			<media:title type="html">robot</media:title>
		</media:content>
	</item>
	</channel>
</rss>
