<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>David Aiken : Installer</title><link>http://blogs.msdn.com/daiken/archive/tags/Installer/default.aspx</link><description>Tags: Installer</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Test Drivin' and installin</title><link>http://blogs.msdn.com/daiken/archive/2007/08/07/test-drivin-and-installin.aspx</link><pubDate>Wed, 08 Aug 2007 03:36:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4285413</guid><dc:creator>daiken</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/daiken/comments/4285413.aspx</comments><wfw:commentRss>http://blogs.msdn.com/daiken/commentrss.aspx?PostID=4285413</wfw:commentRss><description>&lt;p&gt;I've been on vacation - which really means I haven't done any work for the last few weeks. Now I'm back and working on a super cool project, which I will share in a few weeks.&lt;/p&gt; &lt;p&gt;The project involves writing some code which is not part of &lt;strong&gt;DinnerNow&lt;/strong&gt;! (Although we did drop an Orcas Beta 2 version this week on codeplex &lt;a title="http://www.codeplex.com/DinnerNow/Release/ProjectReleases.aspx?ReleaseId=6232" href="http://www.codeplex.com/DinnerNow/Release/ProjectReleases.aspx?ReleaseId=6232"&gt;http://www.codeplex.com/DinnerNow/Release/ProjectReleases.aspx?ReleaseId=6232&lt;/a&gt;)&lt;/p&gt; &lt;p&gt;Since we learnt a bunch of stuff building DinnerNow, I thought it would be good to adopt the best practices from the start.&lt;/p&gt; &lt;p&gt;First,&amp;nbsp; I'm adopting a TDD approach. So you would think my first piece of code was a test. WRONG! My first piece of code is the installer!&lt;/p&gt; &lt;p&gt;Installer? - there is nothing to install. Correct. But there is still an installer project, which compiles and builds and installs pretty much nothing. (It actually installs a DLL from the 1st project - the DLL contains an empty class otherwise you cannot build an installer). I've decided to use &lt;a href="http://wix.sourceforge.net/"&gt;WIX&lt;/a&gt; as the installer technology (the same as we used for DinnerNow)&lt;/p&gt; &lt;p&gt;2nd task - another Installer! That is correct, since this is another project that won't be shipping binary code (it's a sample), there needs to be a way to install the source code. Since I now have source code, the first installer, I need a way of installing that.&lt;/p&gt; &lt;p&gt;So now I have 2 installers and no code to speak of. What does that give me. Well, I am already in "ship" mode. I don't have to scramble around at the end of the project, figuring out how to install and configure things. &lt;/p&gt; &lt;p&gt;If someone wants to take a look or to test, I hit F5 and out pops an MSI.&lt;/p&gt; &lt;p&gt;Next, a unit test for a Windows PowerShell CmdLet that doesn't exist...&lt;/p&gt; &lt;p&gt;THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4285413" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/daiken/archive/tags/General/default.aspx">General</category><category domain="http://blogs.msdn.com/daiken/archive/tags/DinnerNow/default.aspx">DinnerNow</category><category domain="http://blogs.msdn.com/daiken/archive/tags/Installer/default.aspx">Installer</category></item></channel></rss>