<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.infosupport.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>Martijn Beenes</title><link>http://blogs.infosupport.com/martijnb/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 (Build: 60809.935)</generator><item><title>TF30331: Team Explorer could not connect to the Team Foundation server.</title><link>http://blogs.infosupport.com/martijnb/archive/2008/10/21/TF30331_3A00_-Team-Explorer-could-not-connect-to-the-Team-Foundation-server_2E00_.aspx</link><pubDate>Tue, 21 Oct 2008 10:55:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:14587</guid><dc:creator>martijnb</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.infosupport.com/martijnb/comments/14587.aspx</comments><wfw:commentRss>http://blogs.infosupport.com/martijnb/commentrss.aspx?PostID=14587</wfw:commentRss><description>&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;In the last couple of months I have been helping a lot of our customers migrate from Team System 2005 to Team System 2008.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Some customers did not have their licenses updated on the day that I came by to help them upgrade Team System. In order to perform the upgrade on that day, and let them continue working with Team System, I advised them to install the trial version of Team System and update the license key on a later date when they acquired the correct license key.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Unfortunately, some customers forgot to perform this upgrade and after 90 days of Team System running without any problems the developers got the following &lt;span&gt;&amp;nbsp;&lt;/span&gt;error when trying to connect to Team System:&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;img alt="TF30331" height="114" src="http://blogs.infosupport.com/photos/martijnb/images/14585/640x114.aspx" style="width:640px;height:114px;" title="TF30331" width="640" /&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;As the message states the trial edition of Team System had expired and the license must be updated to continue running Team System.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;The question that I then got was, how can I update my license?&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Well, the license can be updated in the following way:&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in;"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;1)&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Open the &amp;ldquo;Add or Remove programs&amp;rdquo; dialog &lt;span&gt;&amp;nbsp;&lt;/span&gt;(Start&lt;/font&gt;&lt;span style="font-family:Wingdings;"&gt;&lt;span&gt;&amp;agrave;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;Control Panel &lt;/font&gt;&lt;span style="font-family:Wingdings;"&gt;&lt;span&gt;&amp;agrave;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt; Add or Remove programs)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in;"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;2)&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Select the &amp;ldquo;Microsoft Visual Studio 2008 Team Foundation Server&amp;rdquo; entry.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in;"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;3)&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Click the change/remove button. The Maintenance mode dialog of the Team System setup should appear.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in;"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;4)&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Select the &amp;ldquo;Upgrade to Microsoft Visual Studio 2008 Team Foundation server&amp;rdquo;.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;br /&gt;&lt;/font&gt;&amp;nbsp;&lt;img alt="TFS Setup" height="451" src="http://blogs.infosupport.com/photos/martijnb/images/14592/original.aspx" style="width:506px;height:451px;" title="TFS Setup" width="506" /&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in;"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;5)&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Enter the new licence key and click in the &amp;ldquo;Next&amp;rdquo; button.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt 0.5in;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;The setup will now update the Team Foundation server license and you should be able to use Team System again.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt 0.5in;text-indent:-0.25in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=14587" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/martijnb/archive/tags/TFS/default.aspx">TFS</category></item><item><title>Update: MSDN Evening session on Windows Installer Xml</title><link>http://blogs.infosupport.com/martijnb/archive/2008/06/23/Update_3A00_-MSDN-Evening-session-on-Windows-Installer-Xml.aspx</link><pubDate>Mon, 23 Jun 2008 19:34:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:14051</guid><dc:creator>martijnb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.infosupport.com/martijnb/comments/14051.aspx</comments><wfw:commentRss>http://blogs.infosupport.com/martijnb/commentrss.aspx?PostID=14051</wfw:commentRss><description>&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;I recently &lt;a href="http://blogs.infosupport.com/martijnb/archive/2008/06/06/MSDN-Evening-session-on-Windows-Installer-Xml.aspx"&gt;&lt;font color="#0000ff"&gt;blogged&lt;/font&gt;&lt;/a&gt; about a session I did for Microsoft Belgium on &lt;strong&gt;W&lt;/strong&gt;indows &lt;strong&gt;I&lt;/strong&gt;nstaller &lt;strong&gt;X&lt;/strong&gt;ml. This session was recorded and is now online. The recording only shows the slides and demo&amp;rsquo;s I did. If you would like to view this session, you can view it &lt;a href="http://www.microsoft.com/belux/msdn/nl/chopsticks/default.aspx?id=455"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=14051" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/martijnb/archive/tags/WiX/default.aspx">WiX</category></item><item><title>MSDN Evening session on Windows Installer Xml</title><link>http://blogs.infosupport.com/martijnb/archive/2008/06/06/MSDN-Evening-session-on-Windows-Installer-Xml.aspx</link><pubDate>Fri, 06 Jun 2008 14:40:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:13958</guid><dc:creator>martijnb</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.infosupport.com/martijnb/comments/13958.aspx</comments><wfw:commentRss>http://blogs.infosupport.com/martijnb/commentrss.aspx?PostID=13958</wfw:commentRss><description>&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;On June 4, I did a session for Microsoft Belgium on &lt;strong&gt;W&lt;/strong&gt;indows &lt;strong&gt;I&lt;/strong&gt;nstaller &lt;strong&gt;X&lt;/strong&gt;ml during a MSDN evening session. You can read more about MSDN evening sessions in Belgium &lt;a href="http://www.microsoft.com/belux/msdn/nl/events/2006/20061115_vstsdb.mspx"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;In this session, I explained the basic concept of Windows Installer packages and by using a number of demos, showed how to create a fully customized Windows installer packages using &lt;strong&gt;W&lt;/strong&gt;indows &lt;strong&gt;I&lt;/strong&gt;nstaller &lt;strong&gt;X&lt;/strong&gt;ml.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;You can download the slide deck &lt;a href="http://blogs.infosupport.com/files/folders/martijnb/entry13948.aspx"&gt;here&lt;/a&gt; and a zip file containing the demos can be downloaded &lt;a href="http://blogs.infosupport.com/files/folders/martijnb/entry13947.aspx"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=13958" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/martijnb/archive/tags/WiX/default.aspx">WiX</category></item><item><title>Developer Days 2008 presentation on Sync Framework</title><link>http://blogs.infosupport.com/martijnb/archive/2008/06/05/Developer-Days-2008-presentation-on-Syn-Framework.aspx</link><pubDate>Thu, 05 Jun 2008 19:11:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:13954</guid><dc:creator>martijnb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.infosupport.com/martijnb/comments/13954.aspx</comments><wfw:commentRss>http://blogs.infosupport.com/martijnb/commentrss.aspx?PostID=13954</wfw:commentRss><description>&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;strong&gt;&lt;span style="font-size:11pt;color:black;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;On may 22, I did a session on the Microsoft Sync Framework during the dutch Developer Days 2008.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;Here is a picture of me during the thursday session:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;img alt="http://blogs.infosupport.com/photos/martijnb/images/13944/425x319.aspx" height="319" src="http://blogs.infosupport.com/photos/martijnb/images/13944/425x319.aspx" style="width:425px;height:319px;" title="http://blogs.infosupport.com/photos/martijnb/images/13944/425x319.aspx" width="425" /&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;In this session I gave an overview of the Sync Framework. I used a simple demo application to demo some of the features of the Sync Framework. You can download the slide deck &lt;a href="http://blogs.infosupport.com/files/folders/martijnb/entry13945.aspx"&gt;here&lt;/a&gt; and a zip file containing the demos can be download &lt;a href="http://blogs.infosupport.com/files/folders/martijnb/entry13953.aspx"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;During my session, I showed a video of Mike that is using different kinds of devices and has his data available on everyone of them. This video is not part of the slide deck (it is just to big). If you want to watch the video again, you can download it from &lt;a href="http://on10.net/blogs/maxpowerhouse7/Is-this-the-future-It-could-be/Default.aspx"&gt;&lt;font color="#0000ff"&gt;here&lt;/font&gt;&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;I had a good time presenting this session. I hope it was a useful for you as well.&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=13954" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/martijnb/archive/tags/Sync+Framework/default.aspx">Sync Framework</category><category domain="http://blogs.infosupport.com/martijnb/archive/tags/DevDays/default.aspx">DevDays</category></item><item><title>Using WiX UI library</title><link>http://blogs.infosupport.com/martijnb/archive/2007/11/29/Using-WiX-UI-library.aspx</link><pubDate>Thu, 29 Nov 2007 08:33:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:13153</guid><dc:creator>martijnb</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.infosupport.com/martijnb/comments/13153.aspx</comments><wfw:commentRss>http://blogs.infosupport.com/martijnb/commentrss.aspx?PostID=13153</wfw:commentRss><description>&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;When using WiX, I found that most of the development time is spend on building a user interface. Fortunately WiX provides a library with some default dialog sets. Those dialog sets provide a familiar wizard-style user interface and can help you build MSI files much faster. At the WiX &lt;a href="http://wix.sourceforge.net/manual-wix2/WixUI_dialog_library.htm"&gt;website&lt;/a&gt; you can read which dialog sets are available in the WiX library.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;In most cases these dialog sets will provide the user experience you need, although you might want to change the background image, banner image or change the license text to give the MSI a custom look and feel. &lt;br /&gt;With WiX 2 this can be accomplished by placing the appropriate image files in a sub-folder of the current directory in which the wixobj file is located. The sub-folder should be named: &lt;em&gt;Bitmaps&lt;/em&gt;. In this directory files can be placed that must be used by light.exe instead of the defaults. These files must have specific names and dimension. In the table below the different filenames, and dimensions are mentioned:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;table cellpadding="0" cellspacing="0" class="MsoNormalTable"&gt;&lt;tr&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:116.25pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;strong&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;File name &lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:4.25in;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;strong&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Description &lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:63pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;strong&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Dimensions &lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:116.25pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;bannrbmp.bmp&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:4.25in;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Top banner bitmap&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:63pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;500 &amp;times; 63&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:116.25pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;dlgbmp.bmp&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:4.25in;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Background bitmap used on welcome and install-complete dialogs&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:63pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;503 &amp;times; 314&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:116.25pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;exclamic.ico&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:4.25in;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Exclamation icon on the wait-for-costing dialog&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:63pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;32 &amp;times; 32&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:116.25pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;info.ico&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:4.25in;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Information icon on the cancel and error dialogs&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:63pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;32 &amp;times; 32&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:116.25pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;New.ico&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:4.25in;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Button icon on directory-browse dialog&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:63pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;16 &amp;times; 16&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15.15pt;"&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:116.25pt;border-bottom:#cccccc 1pt solid;height:15.15pt;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Up.ico&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:4.25in;border-bottom:#cccccc 1pt solid;height:15.15pt;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Button icon on directory-browse dialog&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:63pt;border-bottom:#cccccc 1pt solid;height:15.15pt;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;16 &amp;times; 16&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;font-family:'Verdana','sans-serif';"&gt;The license text can be updated by placing a License.rtf file in the &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;in the directory were the wixobj file is located&lt;/span&gt;&lt;span style="font-size:9pt;font-family:'Verdana','sans-serif';"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;Unfortunately this trick doesn&amp;rsquo;t work anymore with WiX 3. This doesn&amp;rsquo;t mean that it is not possible to change the images or license text. With WiX 3 you can specify the images, icons and license text by providing the path to those files as arguments on the command line. The following arguments are available for this:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;table cellpadding="0" cellspacing="0" class="MsoNormalTable"&gt;&lt;tr&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:116.25pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;strong&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Property name &lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:369pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;strong&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Description &lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9.75pt;"&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:116.25pt;border-bottom:#cccccc 1pt solid;height:9.75pt;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;WixUIBannerBmp&lt;/span&gt;&lt;span style="font-family:'Verdana','sans-serif';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:369pt;border-bottom:#cccccc 1pt solid;height:9.75pt;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Path to the top banner bitmap&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:116.25pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;WixUIDialogBmp&lt;/span&gt;&lt;span style="font-family:'Verdana','sans-serif';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:369pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Path to the background bitmap used on welcome and install-complete dialogs&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:116.25pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;WixUIExclamationIco&lt;/span&gt;&lt;span style="font-family:'Verdana','sans-serif';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:369pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Path to the exclamation icon on the wait-for-costing dialog&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:116.25pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;WixUIInfoIco&lt;/span&gt;&lt;span style="font-family:'Verdana','sans-serif';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:369pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Path to the information icon on the cancel and error dialogs&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:116.25pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;WixUINewIco&lt;/span&gt;&lt;span style="font-family:'Verdana','sans-serif';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:369pt;border-bottom:#cccccc 1pt solid;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Path to the button icon on directory-browse dialog&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15.15pt;"&gt;&lt;td style="width:116.25pt;height:15.15pt;background-color:transparent;border:#f0f0f0;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;WixUIUpIco&lt;/span&gt;&lt;span style="font-family:'Verdana','sans-serif';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:369pt;height:15.15pt;background-color:transparent;border:#f0f0f0;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Path to the button icon on directory-browse dialog&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15.15pt;"&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:116.25pt;border-bottom:#cccccc 1pt solid;height:15.15pt;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;WixUILicenseRtf&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right:#f0f0f0 1pt inset;border-top:#f0f0f0 1pt inset;border-left:#f0f0f0 1pt inset;width:369pt;border-bottom:#cccccc 1pt solid;height:15.15pt;background-color:transparent;padding:3pt;"&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;font face="Calibri" size="3"&gt;Path to the license file&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;Specify the argument on the command line in the following way: &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNoSpacing" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Light.exe &amp;lt;some_wixobj_file&amp;gt; -dWixUILicenseRtf=[Path-to-License-file]&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=13153" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/martijnb/archive/tags/WiX/default.aspx">WiX</category></item><item><title>Uploading MsTest results to TFS</title><link>http://blogs.infosupport.com/martijnb/archive/2007/11/21/Uploading-MsTest-results-to-TFS.aspx</link><pubDate>Wed, 21 Nov 2007 08:08:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:13120</guid><dc:creator>martijnb</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.infosupport.com/martijnb/comments/13120.aspx</comments><wfw:commentRss>http://blogs.infosupport.com/martijnb/commentrss.aspx?PostID=13120</wfw:commentRss><description>&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;At Info Support we have been building and maintaining an automated build process over the last six years. This process is largely based on &lt;a href="http://nant.sourceforge.net/"&gt;NAnt&lt;/a&gt; and has a lot of custom code.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;When Team System was released, we started upgrading our build to use the Team System Version Control environment instead of Visual SourceSafe. Furthermore we integrated our build into TFS by writing custom tasks to register builds with Team System and log information with team System during the build. This way we&amp;rsquo;re able to keep our existing custom build environment (that provides much more features then the default TeamBuild with Team System does) and still provide the full TFS experience with Visual Studio.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;In our automated build process we&amp;rsquo;ve been using &lt;a href="http://www.nunit.org/"&gt;NUnit&lt;/a&gt; to execute unit tests. This tool has been the defacto standard for quite some years and is fairly easy to use. However, with the launch of Team System Microsoft released their own test engine called MsTest. Now that MS released the test tools also in the Professional SKU we wanted to support MS test as well in our build. To remain backwards compatible, we&amp;rsquo;ve decided to extend our build to support both NUnit and MsTest.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;I have been working on this feature for some days and kept running into the same problem. Running the MsTest tests locally turned out to be very simple. The problems started when I tried to upload the test results back to Team System. I kept on getting the error:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;color:black;font-family:'Courier New';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;color:black;font-family:'Courier New';"&gt;Publish Failed. Test Type not installed on the server for test type: &amp;quot;Microsoft.Samples.VisualStudio.TestTools.HostAdapters.VsIde.RunConfigData&amp;quot;.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;As it turns out this issue only appears with solutions that were opened on a machine were the Microsoft Visual Studio 2005 SDK is installed. &lt;br /&gt;Searching the internet I found &lt;a href="http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=273958"&gt;this&lt;/a&gt; comment on the Microsoft connect site, provided by the VS SDK team:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:8.5pt;color:black;font-family:'Verdana','sans-serif';"&gt;In case you build VS packages, you have to have VS SDK installed. This is the main purpose of VS SDK. If you do not need to extend VS with the new packages, please uninstall the VS SDK and the problem will go away. It is by design of the Test project to persist all the registered host types in the test run config file and VS SDK installs the VS IDE Host Adapter.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;Unfortunately uninstalling the SDK is not an option for us as we do extend Visual Studio. I realized though, that when this information is put into the test run config file, the information is not mandatory. It should be possible to delete this information, without breaking the test run config file.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;We ended up building a very simple MsBuild task that will scan the test run config file before the tests are executed and delete the hostData element in the test run config file.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;Hope this helps,&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=13120" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/martijnb/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.infosupport.com/martijnb/archive/tags/MsTest/default.aspx">MsTest</category></item><item><title>Cloning a Team Foundation Server</title><link>http://blogs.infosupport.com/martijnb/archive/2007/07/29/Cloning-a-Team-Foundation-Server.aspx</link><pubDate>Sat, 28 Jul 2007 23:21:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:12532</guid><dc:creator>martijnb</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.infosupport.com/martijnb/comments/12532.aspx</comments><wfw:commentRss>http://blogs.infosupport.com/martijnb/commentrss.aspx?PostID=12532</wfw:commentRss><description>&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;This weekend we upgraded our production servers running Team Foundation Server (the &amp;ldquo;Whidbey&amp;rdquo; release) to the Beta 2 of the Team Foundation Server &amp;ldquo;Orcas&amp;rdquo; release.&lt;br /&gt;First, I have to say, the upgrade experience compared to the beta 1 is much, much better. Just run the installer, fill out some account information and wait a while until the upgrade is done.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;We encountered no problems during the upgrade, but unfortunately after the upgrade things took a bad turn. The first server we upgraded crashed. The operating system was completely deleted from the hard drive. In turned out that we ran into a nasty bug on TFS &amp;ldquo;Orcas&amp;rdquo; that is very hard to run into. My colleague Marcel de Vries wrote a blog post about it. You can read it &lt;a href="http://blogs.infosupport.com/marcelv/archive/2007/07/28/Warning_3A00_ORCAS-B2-build-bug-that-can-cause-your-machine-to-be-wiped_2100_.aspx"&gt;&lt;font color="#800080"&gt;here&lt;/font&gt;&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;So with the server gone, we had to install our server from scratch. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;To prevent these kind of production problems and because of the need to store our customer code separately from our own codebase, we had already decided to split our big Team Foundation Server in two. To accomplish this, we created a clone of our main Team Foundation server and upgraded the cloned server to the &amp;ldquo;Orcas&amp;rdquo; Beta 2 bits. As the server had crashed, we needed to run this process again.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;There is a nice guide available from Microsoft to clone a (Whidbey) Team Foundation Server. You can read it &lt;a href="http://msdn2.microsoft.com/en-us/library/ms404869(VS.80).aspx"&gt;&lt;font color="#800080"&gt;here&lt;/font&gt;&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;There is one imported thing to note when using this guide. This guide is meanly meant to re-install your server after it crashed or for whatever other reason. But it assumes that after (or even during) the cloning process the &amp;ldquo;source&amp;rdquo; server is no longer available.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;In our case we wanted the &amp;ldquo;source&amp;rdquo; server to be up and running next to the newly cloned server. To accomplish this you need to give one of the Team Foundation servers a new instance id. This can be accomplished with the following commands:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="padding-right:4pt;padding-left:4pt;padding-bottom:1pt;padding-top:1pt;border:windowtext 1pt solid;"&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;border:medium none;padding:0in;"&gt;&lt;span style="font-size:8pt;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&amp;ldquo;%TFSInstallDir%\Tools\InstanceInfo.exe&amp;quot; stamp /setup /install /rollback /d TFSWorkItemTracking,TFSBuild,TFSVersionControl,TFSIntegration /s&amp;nbsp;&amp;lt;&amp;lt;your new data tier&amp;gt;&amp;gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;border:medium none;padding:0in;"&gt;&lt;span style="font-size:8pt;font-family:'Verdana','sans-serif';"&gt;&amp;quot;% TFSInstallDir %\Tools\InstanceInfo.exe&amp;quot; stamp /d TFSWorkItemTracking,TFSBuild,TFSVersionControl,TFSIntegration /s &amp;lt;&amp;lt;your new data tier&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size:8pt;color:black;font-family:'Verdana','sans-serif';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;The first command is the clear the instance id, the second to stamp a new instance id. After executing these commands you have a newly cloned server side-by-side with the original server.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;The cloning process can take up quite some time. &lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;It took us about 4 hours to clone the server. This might take less or more time depending on the size of the Team System databases. We have a TfsVersionControl database of over 6 gigabytes and it took about 25 minutes to create a backup of this database and another 25 minutes to restore it.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;Because of the server crashes (It crashed twice before we understood what was causing the problem) we cloned our production server three times in the last few days. Since the backup and restore actions for the Team System databases took us so much time, we created a T-SQL script to restore the databases and move them to a new location. You can download the script &lt;a href="http://blogs.infosupport.com/files/folders/martijnb/entry12531.aspx"&gt;&lt;font color="#800080"&gt;here&lt;/font&gt;&lt;/a&gt;. (Note that the location and names of the backup files will be different on your machine.)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;Our servers our now al up and running with the Team System &amp;ldquo;Orcas&amp;rdquo; Beta 2 bits, thanks to the guys of Microsoft that helped is fix the data that was causing the server crash.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;Hope this helps.&lt;/span&gt; &lt;p&gt;&lt;strike&gt;&lt;/strike&gt;&lt;/p&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=12532" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/martijnb/archive/tags/Team+System/default.aspx">Team System</category></item><item><title>Renaming TFS Orcas Beta 1 VPC</title><link>http://blogs.infosupport.com/martijnb/archive/2007/05/08/Renaming-TFS-Orcas-Beta-1-VPC.aspx</link><pubDate>Tue, 08 May 2007 06:12:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:12115</guid><dc:creator>martijnb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.infosupport.com/martijnb/comments/12115.aspx</comments><wfw:commentRss>http://blogs.infosupport.com/martijnb/commentrss.aspx?PostID=12115</wfw:commentRss><description>&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;At Info Support we are involved in the Microsoft &lt;strong&gt;T&lt;/strong&gt;echnical &lt;strong&gt;A&lt;/strong&gt;daption &lt;strong&gt;P&lt;/strong&gt;rogram for Visual Studio Team System codename Orcas.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:'Verdana','sans-serif';"&gt;As part of this program we recently downloaded the Virtual PC Image containing Visual Studio Team System codename Orcas beta 1. (You can download it from the Microsoft site &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A13CAE3D-8EC1-4D84-8620-D82E832391D7&amp;amp;displaylang=en"&gt;&lt;font color="#800080"&gt;here&lt;/font&gt;&lt;/a&gt;.)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;Last week I ran into some trouble when I was renaming this image. Another colleague of mine was using an image with the same name. I decided to rename the Virtual PC and add it to the domain to prevent further trouble.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;First I renamed the machine and restarted the image. Next I added the image to our corporate domain. Then I followed the steps as described &lt;a href="http://msdn2.microsoft.com/en-us/library/ms252469(VS.80).aspx"&gt;&lt;font color="#800080"&gt;here&lt;/font&gt;&lt;/a&gt; to reconfigure the Team Foundation Server.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;Al seamed well, until I tried to connect to the Team Foundation Server using my domain account. I got the following error:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="padding-right:4pt;padding-left:4pt;padding-bottom:1pt;padding-top:1pt;border:windowtext 1pt solid;"&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;border:medium none;padding:0in;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;TF31003: Your user account doesn&amp;rsquo;t have permission to connect to the Team Foundation Server http://server:8080/. Contact your Team Foundation Server administrator and request that the appropriate permissions be added to your account.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;I verified that I was administrator on the image. I tried connecting with the local administrator and that worked just fine. When I looked at the &lt;em&gt;Group membership&lt;/em&gt; under the &lt;em&gt;Team Foundation Server settings&lt;/em&gt;, I noticed the domain users where not listed in the Team Foundation Administrator group.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;I tried adding the domain user explicitly. This resulted in the error:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="padding-right:4pt;padding-left:4pt;padding-bottom:1pt;padding-top:1pt;border:windowtext 1pt solid;"&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;border:medium none;padding:0in;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;Team Foundation Server could not resolve the user or group &amp;lsquo;Martijn Beenes&amp;rsquo;. The user or group might be member of a different domain, or the server might not have access to the domain. Verify the domain membership of the server and any domain trusts.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;tab-stops:155.25pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;This error message triggered me to check the application pools used by Team Foundation Server. The identities of these application pools were all configured to use a local user account. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;tab-stops:155.25pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;I changed the identities to a domain account we have available for services. &lt;span&gt;&amp;nbsp;&lt;/span&gt;When connecting to Team Foundation Server I still got an error message. And even worse the TFSWSS application pool had crashed.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;tab-stops:155.25pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;It turned out that I needed to add the domain user (which the application pools were running on) to the local IIS_WPG group as well. This solved my problems. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;tab-stops:155.25pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;tab-stops:155.25pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;Hopes this helps.&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=12115" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/martijnb/archive/tags/Team+System/default.aspx">Team System</category></item><item><title>An introduction to Windows Installer Xml</title><link>http://blogs.infosupport.com/martijnb/archive/2006/12/07/An-introduction-to-Windows-Installer-Xml.aspx</link><pubDate>Thu, 07 Dec 2006 19:04:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:11136</guid><dc:creator>martijnb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.infosupport.com/martijnb/comments/11136.aspx</comments><wfw:commentRss>http://blogs.infosupport.com/martijnb/commentrss.aspx?PostID=11136</wfw:commentRss><description>&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;Recently I wrote an article on Windows Installer Xml (WiX for short). Windows Installer Xml is an open source initiative from Microsoft for &lt;/span&gt;&lt;span style="font-size:9pt;font-family:Verdana;"&gt;a toolset that builds Windows installation packages from XML source code. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;font-family:Verdana;"&gt;I have written an introduction article on this technology that just got published in the Software Developer Network Magazine of november. You can read the article &lt;a href="http://www.sdn.nl/Default.aspx?tabid=50&amp;amp;itemid=2273"&gt;&lt;font color="#800080"&gt;here&lt;/font&gt;&lt;/a&gt;. (You must be a member to read the complete article.)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;font-family:Verdana;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:9pt;font-family:Verdana;"&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;font-family:Verdana;"&gt;If you got excited after reading about WiX, you can download the latest version from &lt;a href="http://wix.sourceforge.net/"&gt;&lt;span style="color:purple;"&gt;sourceforge.net&lt;/span&gt;&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=11136" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/martijnb/archive/tags/WiX/default.aspx">WiX</category></item><item><title>Why my coverage didn't reach 100%</title><link>http://blogs.infosupport.com/martijnb/archive/2006/10/20/Why-my-coverage-didn_2700_t-reach-100_2500_.aspx</link><pubDate>Fri, 20 Oct 2006 09:47:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:10863</guid><dc:creator>martijnb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.infosupport.com/martijnb/comments/10863.aspx</comments><wfw:commentRss>http://blogs.infosupport.com/martijnb/commentrss.aspx?PostID=10863</wfw:commentRss><description>&lt;div&gt;&lt;font color="#000000" face="verdana" size="2"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;Some time ago I encountered an interesting feature (!) of the test engine within Visual Studio 2005. I had written&amp;nbsp;a couple of&amp;nbsp;unit tests for some code&amp;nbsp;I had developed. After running the tests I reviewed the coverage results. I&amp;#39;d expected to reach 100% coverage. Instead, the coverage results showed me that&amp;nbsp;I had missed a code block. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;By clicking on the method name containing the non-covered code block, I went straight to the code. It looked like this:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p class="MsoNormal" dir="ltr" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="padding-right:4pt;padding-left:4pt;padding-bottom:1pt;padding-top:1pt;border:windowtext 1pt solid;"&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;color:blue;font-family:'Courier New';"&gt;private&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span&gt;object&lt;/span&gt; GetTypedValue(&lt;span&gt;string&lt;/span&gt; type, &lt;span style="color:blue;"&gt;string&lt;/span&gt; value)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;background:#ccddff;font-family:'Courier New';"&gt;{&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;// Return the correct type.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="background:#ccddff;color:blue;"&gt;switch&lt;/span&gt;&lt;span style="background:#ccddff;"&gt; (type)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;bigint&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="background:#ccddff;color:blue;"&gt;return&lt;/span&gt;&lt;span style="background:#ccddff;"&gt; &lt;span style="color:teal;"&gt;Int64&lt;/span&gt;.Parse(value);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;bit&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="background:#ccddff;color:blue;"&gt;return&lt;/span&gt;&lt;span style="background:#ccddff;"&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt;.Parse(value);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;char&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;nchar&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;ntext&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;nvarchar&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;varchar&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background:#ccddff;color:blue;"&gt;return&lt;/span&gt;&lt;span style="background:#ccddff;"&gt; value;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;datetime&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;smalldatetime&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background:#ccddff;color:blue;"&gt;return&lt;/span&gt;&lt;span style="background:#ccddff;"&gt; &lt;span style="color:teal;"&gt;DateTime&lt;/span&gt;.Parse(value);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;decimal&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="background:#ccddff;color:blue;"&gt;return&lt;/span&gt;&lt;span style="background:#ccddff;"&gt; &lt;span style="color:blue;"&gt;decimal&lt;/span&gt;.Parse(value);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;float&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;real&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="background:#ccddff;color:blue;"&gt;return&lt;/span&gt;&lt;span style="background:#ccddff;"&gt; &lt;span style="color:blue;"&gt;float&lt;/span&gt;.Parse(value);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;int&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background:#ccddff;color:blue;"&gt;return&lt;/span&gt;&lt;span style="background:#ccddff;"&gt; &lt;span style="color:blue;"&gt;int&lt;/span&gt;.Parse(value);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;money&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;smallmoney&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="background:#ccddff;color:blue;"&gt;return&lt;/span&gt;&lt;span style="background:#ccddff;"&gt; &lt;span style="color:teal;"&gt;SqlMoney&lt;/span&gt;.Parse(value);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;smallint&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="background:#ccddff;color:blue;"&gt;return&lt;/span&gt;&lt;span style="background:#ccddff;"&gt; &lt;span style="color:teal;"&gt;Int16&lt;/span&gt;.Parse(value);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color:maroon;"&gt;&amp;quot;xsd:base64Binary&amp;quot;&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background:#ccddff;color:blue;"&gt;return&lt;/span&gt;&lt;span style="background:#ccddff;"&gt; &lt;span style="color:teal;"&gt;Convert&lt;/span&gt;.FromBase64String(value);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;default&lt;/span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="background:#ccddff;color:blue;"&gt;throw&lt;/span&gt;&lt;span style="background:#ccddff;"&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;NotSupportedException&lt;/span&gt;(&lt;span style="color:maroon;"&gt;&amp;quot;...&amp;quot;&lt;/span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;border:medium none;padding:0cm;"&gt;&lt;span style="font-size:10pt;background:#ccddff;font-family:'Courier New';"&gt;}&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p class="MsoNormal" dir="ltr" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="ltr" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;At first glance I noticed nothing strange. All my code paths seemed to have been executed during the tests. Then I noticed that the begin (&amp;ldquo;{&amp;ldquo;) and end (&amp;ldquo;}&amp;rdquo;) tags of my method were marked as covered but the same tags specifying the beginning and end of the switch statement were not.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;A college of mine (thanks Ka Wai) pointed me to the Microsoft forums where this problem is discussed. It seems this problem can occur when using a &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=139981&amp;amp;SiteID=1"&gt;foreach&lt;/a&gt; or &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=330875&amp;amp;SiteID=1"&gt;switch&lt;/a&gt; statement. (The problem with the &lt;em&gt;switch&lt;/em&gt; statement will only occur when you have 6 or more case statements.)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;When using the coverage capabilities of Visual Studio 2005, some code is compiled with your source code. The CLR is generating some extra code under the covers that is used for the &lt;em&gt;foreach&lt;/em&gt; and &lt;em&gt;switch&lt;/em&gt; statements.&lt;span style="color:black;"&gt; This has to do with some optimization the CLR makes.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;color:black;font-family:Verdana;"&gt;So some extra code is run when the tests are executed. &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;The code coverage tool is therefore actually telling the truth. Some of the IL code isn&amp;rsquo;t actually covered by the unit tests. Unfortunately the not covered IL code doesn&amp;rsquo;t correspond with a specific statement in your code so it won&amp;rsquo;t show up in Visual Studio.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:Verdana;"&gt;If you really want to achieve 100% coverage you can use a &lt;em&gt;for&lt;/em&gt; loop instead of a &lt;em&gt;foreach&lt;/em&gt; statement and a nested &lt;em&gt;if-else&lt;/em&gt; construction instead of the switch statement. But I don&amp;rsquo;t recommend it. In my opinion, you should never change your code in favor of a test or coverage. You should rather favor readability and maintainability of the code.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;a href="https://mobile.infosupport.com/exchweb/bin/redir.asp?URL=http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=330875%26SiteID=1" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;&lt;a href="https://mobile.infosupport.com/exchweb/bin/redir.asp?URL=http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=330875%26SiteID=1" target="_blank"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=10863" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/martijnb/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.infosupport.com/martijnb/archive/tags/Team+System/default.aspx">Team System</category></item><item><title>MsBuild metadata</title><link>http://blogs.infosupport.com/martijnb/archive/2006/07/10/MsBuild-metadata.aspx</link><pubDate>Mon, 10 Jul 2006 12:13:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:8868</guid><dc:creator>martijnb</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.infosupport.com/martijnb/comments/8868.aspx</comments><wfw:commentRss>http://blogs.infosupport.com/martijnb/commentrss.aspx?PostID=8868</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;Last week I came across an interesting problem with MsBuild. I &lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';mso-ansi-language:EN-US;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;A href="http://blogs.infosupport.com/martijnb/archive/2006/06/27/8473.aspx"&gt;recently&lt;/A&gt; &lt;/SPAN&gt;blogged about Web Deployment projects in a Team Foundation build. A big advantage of the Web Deployment projects is, that the website/web application output files are copied to a sub directory rather than being dropped in the build output directory which is the case for all other project types.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;Unfortunately this behavior was not enough for the build I was working on.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;In a TeamBuild, only containing Web Application projects and Web Deployment projects, I needed to copy the published websites to a new directory and add an extra subdirectory into the path. &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;Let me clarify this with an example: I needed to copy &lt;I style="mso-bidi-font-style:normal;"&gt;&amp;#8220;c:\Build\_PublishedWebsites\&lt;U&gt;WebSite1&lt;/U&gt;\**\*.*&amp;#8221;&lt;/I&gt; to &lt;I style="mso-bidi-font-style:normal;"&gt;&amp;#8220;c:\MyWebApplications\&lt;U&gt;WebSite1&lt;/U&gt;\&lt;B style="mso-bidi-font-weight:normal;"&gt;wwwroot&lt;/B&gt;\**\*.*&amp;#8221;&lt;/I&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;The key to solving this problem is getting a list of all the websites in the &lt;I style="mso-bidi-font-style:normal;"&gt;_PublishedWebSites&lt;/I&gt; directory and linking them to a collection of files that are contained in those website directories. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;Unfortunatly this can&amp;#8217;t be accomplished in a single MsBuild statement. But I can be solved by using metadata on items and item collections.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;MetaData&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;Metadata is extra information about items in a collection. This metadata can be used to manipulate the item collection.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;Each item in an item collection has some metadata that can be used. For instance each item has a metadata property &lt;I style="mso-bidi-font-style:normal;"&gt;FullPath &lt;/I&gt;specifying the full path to the item on disk. &lt;A href="http://msdn2.microsoft.com/en-us/ms164313.aspx"&gt;Here&lt;/A&gt; you can find a list of the well-known item metadata that is associated with each item in an item collection.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;It is also possible to add your own metadata to items in a collection.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;I used this feature in the build I was working on to create an item collection in which each item had some custom metadata.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;Lets take a look at the example again. The first step to take is getting a list of all the websites in the &lt;I style="mso-bidi-font-style:normal;"&gt;_PublishedWebSites&lt;/I&gt; directory.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;Just create a new item collection, selecting all the (first level) directories under the _PublishedWebSites directory. (A pre condition is that the directories you want to select must contain at least 1 file. Empty directories or directories only containing directories themselves are ignored by the CreateItem task.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:4pt;PADDING-BOTTOM:1pt;BORDER-LEFT:windowtext 1pt solid;PADDING-TOP:1pt;BORDER-BOTTOM:windowtext 1pt solid;mso-element:para-border-div;mso-border-alt:solid windowtext .5pt;"&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;MARGIN:0in 0in 0pt;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#993300;FONT-FAMILY:'Courier New';"&gt;CreateItem&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt; &lt;SPAN style="COLOR:red;"&gt;Include&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;c:\Build\_PublishedWebsites\*\*&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;MARGIN:0in 0in 0pt;BORDER-LEFT:medium none;TEXT-INDENT:0.5in;PADDING-TOP:0in;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#993300;FONT-FAMILY:'Courier New';"&gt;Output&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt; &lt;SPAN style="COLOR:red;"&gt;ItemName&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;PublishedWebSites&lt;/SPAN&gt;" &lt;SPAN style="COLOR:red;"&gt;TaskParameter&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Include&lt;/SPAN&gt;" &lt;SPAN style="COLOR:blue;"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;MARGIN:0in 0in 0pt;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#993300;FONT-FAMILY:'Courier New';"&gt;CreateItem&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';"&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;The new item collection contains all the files that are available in the directories. Each item will have some metadata we need to use. One being: &lt;I style="mso-bidi-font-style:normal;"&gt;RelativeDir&lt;/I&gt;. This metadata property holds the directory (part of a path) that corresponds with the * or ** specified in the Include filter when creating the item collection. In the example, it will contain &amp;#8220;WebSite1&amp;#8221;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;Next we need an item collection of all the files that are part of the websites, grouped per website. This can be accomplished by selecting all the files and directories in the directories we collected in the &lt;I style="mso-bidi-font-style:normal;"&gt;PublishedWebSites &lt;/I&gt;item collection.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;By only using the &lt;I style="mso-bidi-font-style:normal;"&gt;&lt;SPAN style="mso-no-proof:yes;"&gt;RootDir &lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN style="mso-no-proof:yes;"&gt;and&lt;I style="mso-bidi-font-style:normal;"&gt; Directory &lt;/I&gt;&lt;/SPAN&gt;metadata properties, it is possible to create an item collection containing all the files. When creating a new item collection based on a previous created item collection, the metadata properties of the previous created item collection must be copied to the new collection (if you need to use them again). In case of the example, the &lt;I style="mso-bidi-font-style:normal;"&gt;RecursiveDir&lt;/I&gt; property must be copied.&lt;BR&gt;It is not possible to overwrite the well-known metadata properties so a new metadata property must be created.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;By adding this metadata it is possible to ensure that the directory name of the website directory is preserved. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:4pt;PADDING-BOTTOM:1pt;BORDER-LEFT:windowtext 1pt solid;PADDING-TOP:1pt;BORDER-BOTTOM:windowtext 1pt solid;mso-element:para-border-div;mso-border-alt:solid windowtext .5pt;"&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;MARGIN:0in 0in 0pt;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-layout-grid-align:none;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;CreateItem&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;MARGIN:0in 0in 0pt;BORDER-LEFT:medium none;TEXT-INDENT:0.5in;PADDING-TOP:0in;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-layout-grid-align:none;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;Include&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;"&lt;SPAN style="COLOR:blue;"&gt;@(PublishedWebSites-&amp;gt;'%(RootDir)%(Directory)\**\*.*')&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;MARGIN:0in 0in 0pt;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-layout-grid-align:none;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;AdditionalMetadata&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;"&lt;SPAN style="COLOR:blue;"&gt;WebSiteDir=%(RecursiveDir);&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;MARGIN:0in 0in 0pt;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-layout-grid-align:none;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;Output&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;ItemName&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;"&lt;SPAN style="COLOR:blue;"&gt;FilesToCopy&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;TaskParameter&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Include&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;MARGIN:0in 0in 0pt;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;CreateItem&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;The &lt;I style="mso-bidi-font-style:normal;"&gt;FilesToCopy&lt;/I&gt; item collection will contain all the files that must be copied, and will have all the relevant metadata to create the destination path.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:4pt;PADDING-BOTTOM:1pt;BORDER-LEFT:windowtext 1pt solid;PADDING-TOP:1pt;BORDER-BOTTOM:windowtext 1pt solid;mso-element:para-border-div;mso-border-alt:solid windowtext .5pt;"&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;MARGIN:0in 0in 0pt;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-layout-grid-align:none;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;Copy&lt;SPAN style="mso-tab-count:1;"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;MARGIN:0in 0in 0pt;BORDER-LEFT:medium none;TEXT-INDENT:0.5in;PADDING-TOP:0in;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-layout-grid-align:none;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;SourceFiles&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;"&lt;SPAN style="COLOR:blue;"&gt;@(FilesToCopy)&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;MARGIN:0in 0in 0pt;BORDER-LEFT:medium none;TEXT-INDENT:0.5in;PADDING-TOP:0in;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-layout-grid-align:none;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;DestinationFiles&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;"&lt;SPAN style="COLOR:blue;"&gt;@(FilesToCopy-&amp;gt;'c:\MyWebApplications\&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;U&gt;%(WebSiteDir)&lt;/U&gt;&lt;/I&gt;\&lt;B style="mso-bidi-font-weight:normal;"&gt;wwwroot&lt;/B&gt;\%(RecursiveDir)%(FileName)%(Extension)&amp;#8217;)&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;MARGIN:0in 0in 0pt;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';"&gt;This is just one example of how you can use metadata on items and it shows that the use of metadata can be a powerful way to solve specific problems.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=8868" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/martijnb/archive/tags/Team+System/default.aspx">Team System</category></item><item><title>Web Deployment projects in a Team Build.</title><link>http://blogs.infosupport.com/martijnb/archive/2006/06/27/8473.aspx</link><pubDate>Tue, 27 Jun 2006 08:28:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:8473</guid><dc:creator>martijnb</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.infosupport.com/martijnb/comments/8473.aspx</comments><wfw:commentRss>http://blogs.infosupport.com/martijnb/commentrss.aspx?PostID=8473</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-family: 'Courier New'"&gt;Recently one of our customers decided to incorporate Team System into there development process. They wanted to migrate al there existing sources from there source repository system to Team Foundation Version Control.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-family: 'Courier New'"&gt;The sources mainly exist of &amp;#8216;old&amp;#8217; asp code and some vb 6.0 code. There is some .NET 1.1 code as well but it will be migrated to .NET 2.0.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-family: 'Courier New'"&gt;I have been asked to help implement a Team Foundation Build to compile the .NET code and deploy the deliverables as well as the asp files. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-family: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-family: 'Courier New'"&gt;As described in this &lt;A href="http://blogs.infosupport.com/martijnb/archive/2006/05/23/6713.aspx"&gt;post&lt;/A&gt;, Team Build calls various targets. Some of those targets are already implemented by Microsoft. One of the default implemented targets is the &lt;/SPAN&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;CoreDropBuild &lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;target. This target is responsible for copying the output files to a deployment directory.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The files being copied are the assemblies that are created in the build, the program database files and files that are marked in the projects as files to be copied to the output directory (property: Copy To Output Directory is set to true.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Al these files, for all the solutions in the build, are copied to a single directory. Unfortunately, this results in some unwanted behavior. Because all the files are copied to a single directory, files with the same filename are overwritten and only one copy of a file with a specific filename is available in this directory.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Furthermore, because all the files are dropped into a single directory, directory structures needed for the application (especially websites) are no longer available.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Fortunately Microsoft recently released a new project type, the &lt;A href="http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx"&gt;Web Deployment project&lt;/A&gt; type that helped us a lot. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;This project is linked to a Web site project or a Web application project and ensures that the websites are correctly deployed using MsBuild.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;A small problem occurs however when those web deployment projects are used in a Team Build environment. Because the default Team Build implementation builds the output of all the projects in a build to a single build directory, the bin directory for each project is empty. The Web Deployment project however expects that the binaries for the web site/application projects are located in those bin directories.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;As the Visual Studio 2005 project files are actually MsBuild files, this problem is easily fixed. Just add some custom MsBuild code to the web site/application project files to copy the output files back.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Here is an example of the MsBuild code I used, to copy the binaries back to the project bin folder.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 4pt; PADDING-BOTTOM: 1pt; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN lang=NL style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-ansi-language: NL; mso-no-proof: yes"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=NL style="FONT-SIZE: 9pt; COLOR: maroon; FONT-FAMILY: 'Courier New'; mso-ansi-language: NL; mso-no-proof: yes"&gt;Target&lt;/SPAN&gt;&lt;SPAN lang=NL style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-ansi-language: NL; mso-no-proof: yes"&gt; &lt;/SPAN&gt;&lt;SPAN lang=NL style="FONT-SIZE: 9pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-ansi-language: NL; mso-no-proof: yes"&gt;Name&lt;/SPAN&gt;&lt;SPAN lang=NL style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-ansi-language: NL; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN lang=NL style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: NL; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;AfterBuild&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;!--&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; Create an item group containing the WebProject output files. These&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;       &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;     &lt;/SPAN&gt;files should consists of the assemly and optional the .pdb file. --&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: maroon; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;CreateItem&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;Include&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;$(OutDir)\$(AssemblyName).*&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: maroon; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;Output&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;ItemName&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;FilesToCopy&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;TaskParameter&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;Include&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;/&lt; SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: maroon; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;CreateItem&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;!--&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; Copy the files back to the project bin directory. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: maroon; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;Copy&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;SourceFiles&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;@(FilesToCopy)&lt;/SPAN&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;DestinationFiles&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;@(FilesToCopy &amp;#8211;&amp;gt; '$(MSBuildProjectDirectory)\Bin\%(Filename)%(Extension)')&lt;/SPAN&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ContinueOnError&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;!--&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; Create an item group containing the references.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #339966; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;!-- Create an item group containing the assembly references. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #339966; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;     &lt;/SPAN&gt;Copy the dependencies to the bin directory. --&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #993300; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;ResolveAssemblyReference&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;Assemblies&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;="$(AssemblyName)" &lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;SearchPaths&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;="$(OutDir);{TargetFrameworkDirectory};{GAC}" &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; TEXT-INDENT: 0.5in; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;TargetFrameworkDirectories&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;="$(TargetFrameworkDirectory)" &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in