<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Ewald Hofman</title>
    <description>Expertise on VS ALM</description>
    <link>http://www.ewaldhofman.nl/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.6.1.0</generator>
    <language>en-us</language>
    <blogChannel:blogRoll>http://www.ewaldhofman.nl/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Ewald Hofman</dc:creator>
    <dc:title>Ewald Hofman</dc:title>
    <geo:lat>4,767,417.000000</geo:lat>
    <geo:long>-1,221,203.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/EwaldHofman" /><feedburner:info uri="ewaldhofman" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>51.966293</geo:lat><geo:long>5.818505</geo:long><item>
      <title>When runs a product out of support?</title>
      <description>&lt;p&gt;That is a question I get regularly from customers. Microsoft has a great site where you can find that information. Unfortunately this site is not easy to find, and a lot of people are not aware of this site. A good reason to promote it a little.&lt;/p&gt;  &lt;p&gt;So if you ever get a question on this topic, go to &lt;a title="http://support.microsoft.com/lifecycle/search/Default.aspx" href="http://support.microsoft.com/lifecycle/search/Default.aspx"&gt;http://support.microsoft.com/lifecycle/search/Default.aspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ewaldhofman.nl/image.axd?picture=image_157.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.ewaldhofman.nl/image.axd?picture=image_thumb_159.png" width="851" height="390" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;At that site, you can find also the details of the policy&lt;/p&gt;  &lt;h5&gt;Microsoft Support Lifecycle Policy&lt;/h5&gt;  &lt;p&gt;The Microsoft Support Lifecycle policy took effect in October 2002, and applies to most products currently available through retail purchase or volume licensing and most future release products. Through the policy, Microsoft will offer a minimum of:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;10 years of support (5 years Mainstream Support and 5 years Extended Support) at the &lt;a href="http://support.microsoft.com/lifecycle/#Service Pack Support"&gt;supported service pack level&lt;/a&gt; for Business and Developer products &lt;/li&gt;    &lt;li&gt;5 years Mainstream Support at the &lt;a href="http://support.microsoft.com/lifecycle/#Service Pack Support"&gt;supported service pack level&lt;/a&gt; for Consumer/Hardware/Multimedia products &lt;/li&gt;    &lt;li&gt;3 years of Mainstream Support for products that are annually released (for example, Money, Encarta, Picture It!, and Streets &amp;amp; Trips)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img src="http://support.microsoft.com/library/images/support/en-US/LifeCycle01.png" /&gt;    &lt;br /&gt;&lt;img src="http://support.microsoft.com/library/images/support/en-US/LifeCycle02.png" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;      &lt;h6&gt;Phases of the Support Lifecycle&lt;/h6&gt;   &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://support.microsoft.com/library/images/support/en-US/msl_phase.gif" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;    &lt;h6&gt;&lt;u&gt;Mainstream Support&lt;/u&gt;&lt;/h6&gt; &lt;/p&gt;  &lt;p&gt;Mainstream Support is the first phase of the product support lifecycle.   &lt;br /&gt;&lt;i&gt;At the &lt;a href="http://support.microsoft.com/lifecycle/#Service Pack Support"&gt;supported service pack level&lt;/a&gt;, Mainstream Support includes:&lt;/i&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Incident support (no-charge incident support, paid incident support, support charged on an hourly basis, support for warranty claims) &lt;/li&gt;    &lt;li&gt;Security update support &lt;/li&gt;    &lt;li&gt;The ability to request non-security hotfixes&lt;/li&gt; &lt;/ul&gt; &lt;i&gt;Please note:&lt;/i&gt;  &lt;ul&gt;   &lt;li&gt;Enrollment in a maintenance program may be required to receive these benefits for certain products&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;    &lt;h6&gt;&lt;u&gt;Extended Support&lt;/u&gt;&lt;/h6&gt; &lt;/p&gt;  &lt;p&gt;The Extended Support phase follows Mainstream Support for Business and Developer products.    &lt;br /&gt;&lt;i&gt;At the &lt;a href="http://support.microsoft.com/lifecycle/#Service Pack Support"&gt;supported service pack level&lt;/a&gt;, Extended Support includes:&lt;/i&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Paid support &lt;/li&gt;    &lt;li&gt;Security update support at no additional cost &lt;/li&gt;    &lt;li&gt;Non-security related hotfix support requires a separate Extended Hotfix Support Agreement to be purchased (per-fix fees also apply)&lt;/li&gt; &lt;/ul&gt; &lt;i&gt;Please note:&lt;/i&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft will not accept requests for warranty support, design changes, or new features during the Extended Support phase &lt;/li&gt;    &lt;li&gt;Extended Support is not available for Consumer, Hardware, or Multimedia products &lt;/li&gt;    &lt;li&gt;Enrollment in a maintenance program may be required to receive these benefits for certain products&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;    &lt;h6&gt;&lt;u&gt;Self-Help Online Support &lt;/u&gt;&lt;/h6&gt; &lt;/p&gt;  &lt;p&gt;Self-Help Online Support is available throughout a product's lifecycle and for a minimum of 12 months after the product reaches the end of its support. Microsoft online &lt;a href="http://support.microsoft.com/search/?adv=1"&gt;Knowledge Base&lt;/a&gt; articles, FAQs, troubleshooting tools, and other resources, are provided to help customers resolve common issues.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Please note:&lt;/i&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Enrollment in a maintenance program may be required to receive these benefits for certain products&lt;/li&gt; &lt;/ul&gt;    &lt;p&gt;(source: &lt;a title="http://support.microsoft.com/lifecycle/#tab1" href="http://support.microsoft.com/lifecycle/#tab1"&gt;http://support.microsoft.com/lifecycle/#tab1&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ySzYGwEU1c8RTmAUGepF65Hp2V8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ySzYGwEU1c8RTmAUGepF65Hp2V8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ySzYGwEU1c8RTmAUGepF65Hp2V8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ySzYGwEU1c8RTmAUGepF65Hp2V8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EwaldHofman?a=ubbx1DEmsdM:5xVChUe53SU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EwaldHofman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EwaldHofman/~4/ubbx1DEmsdM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/EwaldHofman/~3/ubbx1DEmsdM/post.aspx</link>
      <author>ewald hofman</author>
      <comments>http://www.ewaldhofman.nl/post/2011/04/14/When-runs-a-product-out-of-support.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ewaldhofman.nl/post.aspx?id=82e693b8-5f57-4a93-86dd-5acc11dcdc63</guid>
      <pubDate>Thu, 14 Apr 2011 07:29:53 -0700</pubDate>
      <dc:publisher>ewald hofman</dc:publisher>
      <pingback:server>http://www.ewaldhofman.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.ewaldhofman.nl/post.aspx?id=82e693b8-5f57-4a93-86dd-5acc11dcdc63</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.ewaldhofman.nl/trackback.axd?id=82e693b8-5f57-4a93-86dd-5acc11dcdc63</trackback:ping>
      <wfw:comment>http://www.ewaldhofman.nl/post/2011/04/14/When-runs-a-product-out-of-support.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ewaldhofman.nl/syndication.axd?post=82e693b8-5f57-4a93-86dd-5acc11dcdc63</wfw:commentRss>
    <feedburner:origLink>http://www.ewaldhofman.nl/post.aspx?id=82e693b8-5f57-4a93-86dd-5acc11dcdc63</feedburner:origLink></item>
    <item>
      <title>Dutch Techdays 2011 in The Hague</title>
      <description>&lt;p&gt;&lt;a href="http://www.ewaldhofman.nl/image.axd?picture=DevDays2011Speaker_1.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="DevDays2011Speaker" border="0" alt="DevDays2011Speaker" align="right" src="http://www.ewaldhofman.nl/image.axd?picture=DevDays2011Speaker_thumb.png" width="154" height="250" /&gt;&lt;/a&gt;Microsoft organizes at April 27, 28 and 29 the Dutch Techdays in The Hague. Already for 14 years this is the biggest Microsoft event in The Netherlands where you get the chance to get up to speed with the latest technology with speakers all over the world. I have the pleasure to provide you with two sessions this year:&lt;/p&gt;  &lt;p&gt;At the &lt;a href="http://www.techdays.nl/SessieDetails.aspx?cid=1434"&gt;DevDays Pre-conference&lt;/a&gt; four ALM experts from the Dutch region help you understand how to adopt and improve your agile practices for greater productivity and higher quality applications. The topics for the day are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Adopting SCRUM&lt;/li&gt;    &lt;li&gt;Improve the developer workflow&lt;/li&gt;    &lt;li&gt;Adopting Continous Integration&lt;/li&gt;    &lt;li&gt;Agile testing&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;My second session, &lt;a href="http://www.techdays.nl/SessieDetails.aspx?cid=1360"&gt;LAB Management in de Praktijk&lt;/a&gt; , is about one of the features in Visual Studio ALM a lot of people are not aware of, which is called Lab Management. In the &lt;a href="http://www.dotnetmag.nl/Artikel/1359/Inrichten-testomgeving-met-Lab-Management"&gt;Dutch edition of the .NET magazine&lt;/a&gt;, I already gave the first sneak peak into the product. In the session I will dive deeper in the product and show you how you can create your templates and your test environments. I also show you how you can execute the tests on these environments and how you can incorporate it in Team Build.&lt;/p&gt;  &lt;p&gt;As a speaker you have the advantage to attend other sessions as well. The sessions I really look forward to are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="Bekijk details voor sessie Entity Framework in de Praktijk" href="http://www.techdays.nl/SessieDetails.aspx?cid=1532"&gt;Entity Framework in de Praktijk&lt;/a&gt; (Pieter de Bruin)&lt;/li&gt;    &lt;li&gt;&lt;a title="Bekijk details voor sessie Introduction to Visual Studio Lightswitch" href="http://www.techdays.nl/SessieDetails.aspx?cid=1425"&gt;Introduction to Visual Studio Lightswitch&lt;/a&gt; (Beth Massi)&lt;/li&gt;    &lt;li&gt;&lt;a title="Bekijk details voor sessie Building Robust, Maintainable Coded UI Tests with Visual Studio 2010" href="http://www.techdays.nl/SessieDetails.aspx?cid=1528"&gt;Building Robust, Maintainable Coded UI Tests with Visual Studio 2010&lt;/a&gt; (Brian Keller)&lt;/li&gt;    &lt;li&gt;&lt;a title="Bekijk details voor sessie CQRS op Windows Azure" href="http://www.techdays.nl/SessieDetails.aspx?cid=1561"&gt;CQRS op Windows Azure&lt;/a&gt; (Tijmen van de Kamp)&lt;/li&gt;    &lt;li&gt;&lt;a title="Bekijk details voor sessie Using SharePoint Search to Develop Custom Solutions" href="http://www.techdays.nl/SessieDetails.aspx?cid=1484"&gt;Using SharePoint Search to Develop Custom Solutions&lt;/a&gt; (Mirjam van Olst)&lt;/li&gt;    &lt;li&gt;&lt;a title="Bekijk details voor sessie Application Performance on Windows Phone 7" href="http://www.techdays.nl/SessieDetails.aspx?cid=1566"&gt;Application Performance on Windows Phone 7&lt;/a&gt; (Caspar Ruhe)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Have fun at the Techdays, and hopefully we have a chance to meet each other.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mucrmWy6SleTdCM0B7ViEJ6-_lE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mucrmWy6SleTdCM0B7ViEJ6-_lE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mucrmWy6SleTdCM0B7ViEJ6-_lE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mucrmWy6SleTdCM0B7ViEJ6-_lE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EwaldHofman?a=W550z8-y158:1K0zFNIQNVM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EwaldHofman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EwaldHofman/~4/W550z8-y158" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/EwaldHofman/~3/W550z8-y158/post.aspx</link>
      <author>ewald hofman</author>
      <comments>http://www.ewaldhofman.nl/post/2011/04/08/Dutch-Techdays-2011-in-The-Hague.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ewaldhofman.nl/post.aspx?id=cb928fd1-993d-4642-94e6-41d73bdcf80e</guid>
      <pubDate>Fri, 08 Apr 2011 02:41:57 -0700</pubDate>
      <dc:publisher>ewald hofman</dc:publisher>
      <pingback:server>http://www.ewaldhofman.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.ewaldhofman.nl/post.aspx?id=cb928fd1-993d-4642-94e6-41d73bdcf80e</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.ewaldhofman.nl/trackback.axd?id=cb928fd1-993d-4642-94e6-41d73bdcf80e</trackback:ping>
      <wfw:comment>http://www.ewaldhofman.nl/post/2011/04/08/Dutch-Techdays-2011-in-The-Hague.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ewaldhofman.nl/syndication.axd?post=cb928fd1-993d-4642-94e6-41d73bdcf80e</wfw:commentRss>
    <feedburner:origLink>http://www.ewaldhofman.nl/post.aspx?id=cb928fd1-993d-4642-94e6-41d73bdcf80e</feedburner:origLink></item>
    <item>
      <title>Customize Team Build 2010 – Part 16: Specify the relative reference path</title>
      <description>&lt;p&gt;In the series the following parts have been published&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/04/20/Customize-Team-Build-2010-e28093-Part-1-Introduction.aspx"&gt;Part 1: Introduction&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/04/27/Customize-Team-Build-2010-e28093-Part-2-Add-arguments-and-variables.aspx"&gt;Part 2: Add arguments and variables&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/04/28/Customize-Team-Build-2010-e28093-Part-3-Use-more-complex-arguments.aspx"&gt;Part 3: Use more complex arguments&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/04/29/Customize-Team-Build-2010-e28093-Part-4-Create-your-own-activity.aspx"&gt;Part 4: Create your own activity&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/13/Customize-Team-Build-2010-e28093-Part-5-Increase-AssemblyVersion.aspx"&gt;Part 5: Increase AssemblyVersion&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/17/Customize-Team-Build-2010-e28093-Part-6-Use-custom-type-for-an-argument.aspx"&gt;Part 6: Use custom type for an argument&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/27/Customize-Team-Build-2010-e28093-Part-7-How-is-the-custom-assembly-found.aspx"&gt;Part 7: How is the custom assembly found&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/27/Customize-Team-Build-2010-e28093-Part-8-Send-information-to-the-build-log.aspx"&gt;Part 8: Send information to the build log&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/27/Customize-Team-Build-2010-e28093-Part-9-Impersonate-activities-(run-under-other-credentials).aspx"&gt;Part 9: Impersonate activities (run under other credentials)&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/06/01/Customize-Team-Build-2010-e28093-Part-10-Include-Version-Number-in-the-Build-Number.aspx"&gt;Part 10: Include Version Number in the Build Number&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/10/01/Customize-Team-Build-2010-e28093-Part-11-Speed-up-opening-my-build-process-template.aspx"&gt;Part 11: Speed up opening my build process template&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/10/01/Customize-Team-Build-2010-e28093-Part-12-How-to-debug-my-custom-activities.aspx"&gt;Part 12: How to debug my custom activities&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/10/02/Customize-Team-Build-2010-e28093-Part-13-Get-control-over-the-Build-Output.aspx"&gt;Part 13: Get control over the Build Output&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/11/09/Part-14-Execute-a-PowerShell-script.aspx"&gt;Part 14: Execute a PowerShell script&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/11/09/Part-15-Fail-a-build-based-on-the-exit-code-of-a-console-application.aspx"&gt;Part 15: Fail a build based on the exit code of a console application&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2011/04/06/Customize-Team-Build-2010-e28093-Part-16-Specify-the-relative-reference-path.aspx"&gt;Part 16: Specify the relative reference path&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;hr /&gt;
As I have already &lt;a href="http://www.ewaldhofman.nl/post/2010/02/09/Where-is-the-AdditionalReferencePath-in-TFS-2010.aspx"&gt;blogged about&lt;/a&gt;, it is not intuitive how to specify the paths where the build server has to look for references that are stored in Source Control. It is a common practice to store 3rd party libraries in Source Control, so they are available to everyone, everyone uses the same version of the libraries and updating a library can be done centrally.&lt;/p&gt;
&lt;p&gt;In Team Build 2010 these paths are specified as a parameter for MSBuild. What we will do in this post is building the values for this parameter based on the values in an argument. You are now pretty aware how to customize the build template, so let&amp;rsquo;s do the modifications in another way. Instead of opening the xaml file in the workflow designer, we open it in the XML editor. You can open it in the XML Editor by either selecting the Open with menu (see the context menu), or by choosing the View code option.&lt;/p&gt;
&lt;p&gt;To add this functionality we need to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Specify a new argument&lt;/li&gt;
&lt;li&gt;Add the argument to the metadata&lt;/li&gt;
&lt;li&gt;Build the absolute paths for the references and add these paths to the MSBuild arguments&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;1. Specify a new argument&lt;/h3&gt;
&lt;p&gt;Locate at the top of the document the Members (which are the arguments) of the XAML&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.ewaldhofman.nl/image.axd?picture=image_152.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" src="http://www.ewaldhofman.nl/image.axd?picture=image_thumb_154.png" border="0" alt="image" width="840" height="153" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;and add the following line&lt;/p&gt;
&lt;pre style="line-height: normal; font-family: ; background: white; color: "&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="font-size: 9.8pt;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.8pt;"&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;x:Property&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;ReferencePaths&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;Type&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;InArgument(s:String[])&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://www.ewaldhofman.nl/image.axd?picture=image_153.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" src="http://www.ewaldhofman.nl/image.axd?picture=image_thumb_155.png" border="0" alt="image" width="612" height="146" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;2. Add the argument to the metadata&lt;/h3&gt;
&lt;p&gt;Then locate the line&lt;/p&gt;
&lt;pre style="line-height: normal; font-family: ; background: white; color: "&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="font-size: 9.8pt;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.8pt;"&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;mtbw:ProcessParameterMetadataCollection&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;and paste the following line&lt;/p&gt;
&lt;pre style="line-height: normal; font-family: ; background: white; color: "&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="font-size: 9.8pt;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.8pt;"&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;mtbw:ProcessParameterMetadata&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;Category&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;Misc&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;The list of reference paths, relative to the root path in the Workspace mapping.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;DisplayName&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;Reference paths&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;ParameterName&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;ReferencePaths&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="line-height: normal; font-family: ; background: white; color: "&gt;&lt;a href="http://www.ewaldhofman.nl/image.axd?picture=image_154.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" src="http://www.ewaldhofman.nl/image.axd?picture=image_thumb_156.png" border="0" alt="image" width="1143" height="139" /&gt;&lt;/a&gt;&lt;/pre&gt;
&lt;h3&gt;3. Build the absolute paths for the references and add these paths to the MSBuild arguments&lt;/h3&gt;
&lt;p&gt;Now locate the place where the assignments are done to the variables used in the agent.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.ewaldhofman.nl/image.axd?picture=image_155.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" src="http://www.ewaldhofman.nl/image.axd?picture=image_thumb_157.png" border="0" alt="image" width="1023" height="256" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And add the following lines after the last Assign activity&lt;/p&gt;
&lt;pre style="line-height: normal; font-family: ; background: white; color: "&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="font-size: 9.8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.8pt;"&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Sequence&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;DisplayName&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;Initialize ReferencePath&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;sap:VirtualizedContainerService.HintSize&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;464,428&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Sequence.Variables&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Variable&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;x:TypeArguments&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;x:String&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;ReferencePathsArgument&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Variable.Default&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Literal&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;x:TypeArguments&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;x:String&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;Value&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;""&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Variable.Default&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Variable&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Sequence.Variables&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;sap:WorkflowViewStateService.ViewState&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;scg:Dictionary&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;x:TypeArguments&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;x:String, x:Object&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;x:Boolean&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;x:Key&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;IsExpanded&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;True&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;x:Boolean&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;scg:Dictionary&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;sap:WorkflowViewStateService.ViewState&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;ForEach&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;x:TypeArguments&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;x:String&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;DisplayName&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;Iterate through the paths&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;sap:VirtualizedContainerService.HintSize&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;287,206&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;mtbwt:BuildTrackingParticipant.Importance&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;Low&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;Values&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;[ReferencePaths]&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;ActivityAction&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;x:TypeArguments&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;x:String&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;ActivityAction.Argument&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;DelegateInArgument&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;x:TypeArguments&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;x:String&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;path&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;ActivityAction.Argument&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Assign&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;x:TypeArguments&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;x:String&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;DisplayName&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;Build ReferencePath argument&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;sap:VirtualizedContainerService.HintSize&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;257,100&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;mtbwt:BuildTrackingParticipant.Importance&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;Low&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;br /&gt;                          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: 9.8pt;"&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;To&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;[ReferencePathsArgument]&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;Value&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;[If(String.IsNullOrEmpty(ReferencePathsArgument), &lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;&amp;amp;quot;&amp;amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;, ReferencePathsArgument + &lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;&amp;amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;&amp;amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;) + IO.Path.Combine(SourcesDirectory, path)]&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;ActivityAction&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;ForEach&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Assign&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;DisplayName&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;Append the reference paths to the MSBuild Arguments&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;sap:VirtualizedContainerService.HintSize&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;287,58&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Assign.To&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;OutArgument&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;x:TypeArguments&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;x:String&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;[MSBuildArguments]&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;OutArgument&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Assign.To&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Assign.Value&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;InArgument&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #ff0000;"&gt;x:TypeArguments&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;x:String&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;[String.Format("{0} /p:ReferencePath=""{1}""", MSBuildArguments, ReferencePathsArgument)]&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;InArgument&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Assign.Value&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Assign&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;Sequence&lt;/span&gt;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Now you can use the template to specify the paths relative to SourcesDirectory.&lt;/p&gt;
&lt;ol&gt;&lt;!--EndFragment--&gt;&lt;/ol&gt;
&lt;hr /&gt;
&lt;p&gt;You can download the full solution at &lt;a href="http://www.ewaldhofman.nl/file.axd?file=2010%2f5%2fBuildProcess.zip"&gt;BuildProcess.zip&lt;/a&gt;. It will include the sources of every part and will continue to evolve.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EOfVX6tbHqizZJkyzMGwVtYuvJk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EOfVX6tbHqizZJkyzMGwVtYuvJk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EOfVX6tbHqizZJkyzMGwVtYuvJk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EOfVX6tbHqizZJkyzMGwVtYuvJk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EwaldHofman?a=_eoFsY4UgOs:dBNauZhD6Dc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EwaldHofman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EwaldHofman/~4/_eoFsY4UgOs" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/EwaldHofman/~3/_eoFsY4UgOs/post.aspx</link>
      <author>Ewald Hofman</author>
      <comments>http://www.ewaldhofman.nl/post/2011/04/06/Customize-Team-Build-2010-e28093-Part-16-Specify-the-relative-reference-path.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ewaldhofman.nl/post.aspx?id=4acc1a91-6b99-4163-8a43-ac68c093220b</guid>
      <pubDate>Wed, 06 Apr 2011 05:56:00 -0700</pubDate>
      <category>Team Build</category>
      <category>VS 2010</category>
      <dc:publisher>Ewald Hofman</dc:publisher>
      <pingback:server>http://www.ewaldhofman.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.ewaldhofman.nl/post.aspx?id=4acc1a91-6b99-4163-8a43-ac68c093220b</pingback:target>
      <slash:comments>13</slash:comments>
      <trackback:ping>http://www.ewaldhofman.nl/trackback.axd?id=4acc1a91-6b99-4163-8a43-ac68c093220b</trackback:ping>
      <wfw:comment>http://www.ewaldhofman.nl/post/2011/04/06/Customize-Team-Build-2010-e28093-Part-16-Specify-the-relative-reference-path.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ewaldhofman.nl/syndication.axd?post=4acc1a91-6b99-4163-8a43-ac68c093220b</wfw:commentRss>
    <feedburner:origLink>http://www.ewaldhofman.nl/post.aspx?id=4acc1a91-6b99-4163-8a43-ac68c093220b</feedburner:origLink></item>
    <item>
      <title>SqlBuildTask failed due to ArgumentNullException(searchingPaths)</title>
      <description>&lt;p&gt;At one of my customers, they have setup TFS 2010. They are using the UpgradeTemplate.xaml to build all their solutions, including GDR2 database projects. When building the project, I got the following error message&lt;/p&gt;  &lt;p&gt;&lt;em&gt;DspBuild:     &lt;br /&gt;&amp;#160; Creating a model to represent the project...      &lt;br /&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018: The &amp;quot;SqlBuildTask&amp;quot; task failed unexpectedly. [C:\Builds\9\62\Sources\MyDb\MyDb.dbproj]      &lt;br /&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018: System.ArgumentNullException: Value cannot be null. [C:\Builds\9\62\Sources\MyDb\MyDb.dbproj]      &lt;br /&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018: Parameter name: searchingPaths [C:\Builds\9\62\Sources\MyDb\MyDb.dbproj]      &lt;br /&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018:&amp;#160;&amp;#160;&amp;#160; at Microsoft.Data.Schema.Extensibility.ExtensionAssemblyResolver..ctor(List`1 searchingPaths) [C:\Builds\9\62\Sources\MyDb\MyDb.dbproj]      &lt;br /&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018:&amp;#160;&amp;#160;&amp;#160; at Microsoft.Data.Schema.Extensibility.ExtensionTypeLoader.LoadTypes() [C:\Builds\9\62\Sources\MyDb\MyDb.dbproj]      &lt;br /&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018:&amp;#160;&amp;#160;&amp;#160; at Microsoft.Data.Schema.Extensibility.ExtensionManager..ctor(String databaseSchemaProviderType) [C:\Builds\9\62\Sources\MyDb\MyDb.dbproj]      &lt;br /&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018:&amp;#160;&amp;#160;&amp;#160; at Microsoft.Data.Schema.Tasks.TaskHostLoader.LoadImpl(ITaskHost providedHost, TaskLoggingHelper providedLogger) [C:\Builds\9\62\Sources\MyDb\MyDb.dbproj]      &lt;br /&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018:&amp;#160;&amp;#160;&amp;#160; at Microsoft.Data.Schema.Tasks.TaskHostLoader.Load(ITaskHost providedHost, TaskLoggingHelper providedLogger) [C:\Builds\9\62\Sources\MyDb\MyDb.dbproj]      &lt;br /&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018:&amp;#160;&amp;#160;&amp;#160; at Microsoft.Data.Schema.Tasks.DBBuildTask.Execute() [C:\Builds\9\62\Sources\MyDb\MyDb.dbproj]      &lt;br /&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018:&amp;#160;&amp;#160;&amp;#160; at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [C:\Builds\9\62\Sources\MyDb\MyDb.dbproj]      &lt;br /&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018:&amp;#160;&amp;#160;&amp;#160; at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask, Boolean&amp;amp; taskResult) [C:\Builds\9\62\Sources\MyDb\MyDb.dbproj]&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;     &lt;br /&gt;&lt;/em&gt;&lt;/p&gt;  &lt;h3&gt;Solution&lt;/h3&gt;  &lt;p&gt;To solve this error you set the MSBuild Platform in the Build Defintion to X86:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ewaldhofman.nl/image.axd?picture=image_151.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.ewaldhofman.nl/image.axd?picture=image_thumb_153.png" width="443" height="264" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nBrsmbMV4L6jq3YkPdiPTD3eUIg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nBrsmbMV4L6jq3YkPdiPTD3eUIg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nBrsmbMV4L6jq3YkPdiPTD3eUIg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nBrsmbMV4L6jq3YkPdiPTD3eUIg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EwaldHofman?a=4-5Ug8up4zs:WicC4IttJhw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EwaldHofman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EwaldHofman/~4/4-5Ug8up4zs" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/EwaldHofman/~3/4-5Ug8up4zs/post.aspx</link>
      <author>Ewald Hofman</author>
      <comments>http://www.ewaldhofman.nl/post/2011/01/30/SqlBuildTask-failed-due-to-ArgumentNullException(searchingPaths).aspx#comment</comments>
      <guid isPermaLink="false">http://www.ewaldhofman.nl/post.aspx?id=7567132e-595f-4890-ac68-e28a88dede7c</guid>
      <pubDate>Sun, 30 Jan 2011 19:34:58 -0700</pubDate>
      <dc:publisher>Ewald Hofman</dc:publisher>
      <pingback:server>http://www.ewaldhofman.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.ewaldhofman.nl/post.aspx?id=7567132e-595f-4890-ac68-e28a88dede7c</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.ewaldhofman.nl/trackback.axd?id=7567132e-595f-4890-ac68-e28a88dede7c</trackback:ping>
      <wfw:comment>http://www.ewaldhofman.nl/post/2011/01/30/SqlBuildTask-failed-due-to-ArgumentNullException(searchingPaths).aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ewaldhofman.nl/syndication.axd?post=7567132e-595f-4890-ac68-e28a88dede7c</wfw:commentRss>
    <feedburner:origLink>http://www.ewaldhofman.nl/post.aspx?id=7567132e-595f-4890-ac68-e28a88dede7c</feedburner:origLink></item>
    <item>
      <title>Want nice screen shots?</title>
      <description>&lt;p&gt;I do a lot of Knowledge Transfer to people, which include KT via e-mail or document. A lot of the KT is done by adding screen captures to the document. I just encountered a tool that does exactly what I want. It is called &lt;a href="http://faststone.org/FSCaptureDetail.htm"&gt;FastStone&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ewaldhofman.nl/image.axd?picture=image_150.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.ewaldhofman.nl/image.axd?picture=image_thumb_152.png" width="844" height="548" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;For me the torn-off effect and the highlighting are the most used features.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VN6UOozR3hnWUGumM_0fl_JpxcE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VN6UOozR3hnWUGumM_0fl_JpxcE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VN6UOozR3hnWUGumM_0fl_JpxcE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VN6UOozR3hnWUGumM_0fl_JpxcE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EwaldHofman?a=iG4SEy9gFDk:VLWpUyE9dSU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EwaldHofman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EwaldHofman/~4/iG4SEy9gFDk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/EwaldHofman/~3/iG4SEy9gFDk/post.aspx</link>
      <author>Ewald Hofman</author>
      <comments>http://www.ewaldhofman.nl/post/2011/01/27/Want-nice-screen-shots.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ewaldhofman.nl/post.aspx?id=39001e20-ca21-44aa-80f3-831237fa5737</guid>
      <pubDate>Thu, 27 Jan 2011 17:45:40 -0700</pubDate>
      <dc:publisher>Ewald Hofman</dc:publisher>
      <pingback:server>http://www.ewaldhofman.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.ewaldhofman.nl/post.aspx?id=39001e20-ca21-44aa-80f3-831237fa5737</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.ewaldhofman.nl/trackback.axd?id=39001e20-ca21-44aa-80f3-831237fa5737</trackback:ping>
      <wfw:comment>http://www.ewaldhofman.nl/post/2011/01/27/Want-nice-screen-shots.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ewaldhofman.nl/syndication.axd?post=39001e20-ca21-44aa-80f3-831237fa5737</wfw:commentRss>
    <feedburner:origLink>http://www.ewaldhofman.nl/post.aspx?id=39001e20-ca21-44aa-80f3-831237fa5737</feedburner:origLink></item>
    <item>
      <title>Customize Team Build 2010 – Part 13: Get control over the Build Output</title>
      <description>&lt;p&gt;In the series the following parts have been published&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/04/20/Customize-Team-Build-2010-e28093-Part-1-Introduction.aspx"&gt;Part 1: Introduction&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/04/27/Customize-Team-Build-2010-e28093-Part-2-Add-arguments-and-variables.aspx"&gt;Part 2: Add arguments and variables&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/04/28/Customize-Team-Build-2010-e28093-Part-3-Use-more-complex-arguments.aspx"&gt;Part 3: Use more complex arguments&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/04/29/Customize-Team-Build-2010-e28093-Part-4-Create-your-own-activity.aspx"&gt;Part 4: Create your own activity&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/13/Customize-Team-Build-2010-e28093-Part-5-Increase-AssemblyVersion.aspx"&gt;Part 5: Increase AssemblyVersion&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/17/Customize-Team-Build-2010-e28093-Part-6-Use-custom-type-for-an-argument.aspx"&gt;Part 6: Use custom type for an argument&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/27/Customize-Team-Build-2010-e28093-Part-7-How-is-the-custom-assembly-found.aspx"&gt;Part 7: How is the custom assembly found&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/28/Customize-Team-Build-2010-e28093-Part-8-Send-information-to-the-build-log.aspx"&gt;Part 8: Send information to the build log&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/28/Customize-Team-Build-2010-e28093-Part-9-Impersonate-activities-(run-under-other-credentials).aspx"&gt;Part 9: Impersonate activities (run under other credentials)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/06/01/Customize-Team-Build-2010-e28093-Part-10-Include-Version-Number-in-the-Build-Number.aspx"&gt;Part 10: Include Version Number in the Build Number&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/10/01/Customize-Team-Build-2010-e28093-Part-11-Speed-up-opening-my-build-process-template.aspx"&gt;Part 11: Speed up opening my build process template&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/10/01/Customize-Team-Build-2010-e28093-Part-12-How-to-debug-my-custom-activities.aspx"&gt;Part 12: How to debug my custom activities&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/10/02/Customize-Team-Build-2010-e28093-Part-13-Get-control-over-the-Build-Output.aspx"&gt;Part 13: Get control over the Build Output&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/11/09/Part-14-Execute-a-PowerShell-script.aspx"&gt;Part 14: Execute a PowerShell script&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/11/09/Part-15-Fail-a-build-based-on-the-exit-code-of-a-console-application.aspx"&gt;Part 15: Fail a build based on the exit code of a console application&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;hr /&gt;  &lt;p&gt;In the &lt;a href="http://www.ewaldhofman.nl/post/2010/05/28/Customize-Team-Build-2010-e28093-Part-8-Send-information-to-the-build-log.aspx"&gt;part 8&lt;/a&gt;, I have explained how you can add informational messages, warnings or errors to the build output. If you want to integrate with other lines of text to the build output, you need to do more. This post will show you how you can add extra steps, additional information and hyperlinks to the build output. &lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;&lt;font color="#ff0000"&gt;UPDATE 13-12-2010: &lt;/font&gt;Thanks to Jason Pricket, it is now also possible to not show every activity in the build log. This is really useful when you are doing for-loops in your template. To see how you can do that, check out Jason's blog: &lt;/font&gt;&lt;a title="http://blogs.msdn.com/b/jpricket/archive/2010/12/09/tfs-2010-making-your-build-log-less-noisy.aspx" href="http://blogs.msdn.com/b/jpricket/archive/2010/12/09/tfs-2010-making-your-build-log-less-noisy.aspx"&gt;&lt;font color="#000000"&gt;http://blogs.msdn.com/b/jpricket/archive/2010/12/09/tfs-2010-making-your-build-log-less-noisy.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Add an hyperlink to the end of the build output&lt;/h2&gt;  &lt;p&gt;Lets start with a simple example of how you can adjust the build output. In this case we are going to add at the end of the build output an hyperlink where a user can click on to for example start the deployment to the test environment.&lt;/p&gt;  &lt;p&gt;In &lt;a href="http://www.ewaldhofman.nl/post/2010/04/29/Customize-Team-Build-2010-e28093-Part-4-Create-your-own-activity.aspx"&gt;part 4&lt;/a&gt; you can find information how you can create a custom activity&lt;/p&gt;  &lt;p&gt;To add information to the build output, you need the BuildDetail. This value is a variable in your xaml and is thus easily transferable to you custom activity. Besides the BuildDetail the user has also to specify the text and the url that has to be added to the end of the build output.&lt;/p&gt;  &lt;p&gt;The following code segment shows you how you can achieve this.&lt;/p&gt;  &lt;pre style="font-family: consolas"&gt;&amp;#160;&amp;#160;&amp;#160; [&lt;span style="color: #2b91af"&gt;BuildActivity&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;HostEnvironmentOption&lt;/span&gt;.All)]&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;public&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;sealed&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;class&lt;/span&gt;&amp;#160;&lt;span style="color: #2b91af"&gt;AddHyperlinkToBuildOutput&lt;/span&gt; : &lt;span style="color: #2b91af"&gt;CodeActivity&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;span style="color: #2b91af"&gt;RequiredArgument&lt;/span&gt;]&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;public&lt;/span&gt;&amp;#160;&lt;span style="color: #2b91af"&gt;InArgument&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;IBuildDetail&lt;/span&gt;&amp;gt; BuildDetail { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;span style="color: #2b91af"&gt;RequiredArgument&lt;/span&gt;]&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;public&lt;/span&gt;&amp;#160;&lt;span style="color: #2b91af"&gt;InArgument&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&amp;gt; DisplayText { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;span style="color: #2b91af"&gt;RequiredArgument&lt;/span&gt;]&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;public&lt;/span&gt;&amp;#160;&lt;span style="color: #2b91af"&gt;InArgument&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&amp;gt; Url { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;protected&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;override&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;void&lt;/span&gt; Execute(&lt;span style="color: #2b91af"&gt;CodeActivityContext&lt;/span&gt; context)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: green"&gt;// Obtain the runtime value of the input arguments&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;IBuildDetail&lt;/span&gt; buildDetail = context.GetValue(&lt;span style="color: blue"&gt;this&lt;/span&gt;.BuildDetail);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;string&lt;/span&gt; displayText = context.GetValue(&lt;span style="color: blue"&gt;this&lt;/span&gt;.DisplayText);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;string&lt;/span&gt; url = context.GetValue(&lt;span style="color: blue"&gt;this&lt;/span&gt;.Url);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: green"&gt;// Add the hyperlink&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; buildDetail.Information.AddExternalLink(displayText, &lt;span style="color: blue"&gt;new&lt;/span&gt;&amp;#160;&lt;span style="color: #2b91af"&gt;Uri&lt;/span&gt;(url));&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; buildDetail.Information.Save();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/pre&gt;

&lt;pre style="font-family: consolas"&gt;If you add this activity to somewhere in your build process template (within the scope Run on Agent), you will get the following build output&lt;/pre&gt;

&lt;pre style="font-family: consolas"&gt;&lt;a href="http://www.ewaldhofman.nl/image.axd?picture=image_148.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.ewaldhofman.nl/image.axd?picture=image_thumb_150.png" width="204" height="68" /&gt;&lt;/a&gt; &lt;/pre&gt;

&lt;h2&gt;Add an line of text to the build output&lt;/h2&gt;

&lt;p&gt;The next challenge is to add this kind of output not only to the end of the build output but at the step that is currently executing. To be able to do this, you need the current node in the build output. The following code shows you how you can achieve this.&lt;/p&gt;

&lt;p&gt;First you need to get the current activity tracking, which you can get with the following line of code&lt;/p&gt;

&lt;pre style="font-family: consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;IActivityTracking&lt;/span&gt; currentTracking = context.GetExtension&amp;lt;&lt;span style="color: #2b91af"&gt;IBuildLoggingExtension&lt;/span&gt;&amp;gt;().GetActivityTracking(context);&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;Then you can create a new node and set its type to Activity Tracking Node (so copy it from the current node) and do nice things with the node.&lt;/p&gt;

&lt;pre style="font-family: consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;IBuildInformationNode&lt;/span&gt; childNode = currentTracking.Node.Children.CreateNode();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; childNode.Type = currentTracking.Node.Type;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; childNode.Fields.Add(&lt;span style="color: #a31515"&gt;&amp;quot;DisplayText&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;This text is displayed.&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;You can also add a build step to display progress&lt;/p&gt;

&lt;pre style="font-family: consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;IBuildStep&lt;/span&gt; buildStep = childNode.Children.AddBuildStep(&lt;span style="color: #a31515"&gt;&amp;quot;Custom Build Step&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;This is my custom build step&amp;quot;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; buildStep.FinishTime = &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;.Now.AddSeconds(10);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; buildStep.Status = &lt;span style="color: #2b91af"&gt;BuildStepStatus&lt;/span&gt;.Succeeded;&lt;/pre&gt;

&lt;pre style="font-family: consolas"&gt;Or you can add an hyperlink to the node&lt;/pre&gt;

&lt;pre style="font-family: consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; childNode.Children.AddExternalLink(&lt;span style="color: #a31515"&gt;&amp;quot;My link&amp;quot;&lt;/span&gt;, &lt;span style="color: blue"&gt;new&lt;/span&gt;&amp;#160;&lt;span style="color: #2b91af"&gt;Uri&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&lt;a href="http://www.ewaldhofman.nl"&gt;http://www.ewaldhofman.nl&lt;/a&gt;&lt;/span&gt;));&lt;/pre&gt;

&lt;pre style="font-family: consolas"&gt;When you combine this together you get the following result in the build output&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://www.ewaldhofman.nl/image.axd?picture=image_149.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.ewaldhofman.nl/image.axd?picture=image_thumb_151.png" width="333" height="114" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;You can download the full solution at &lt;a href="http://www.ewaldhofman.nl/file.axd?file=2010%2f5%2fBuildProcess.zip"&gt;BuildProcess.zip&lt;/a&gt;. It will include the sources of every part and will continue to evolve.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/C13Na1_i48_WfNgfZfDU3wIu57E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C13Na1_i48_WfNgfZfDU3wIu57E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/C13Na1_i48_WfNgfZfDU3wIu57E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C13Na1_i48_WfNgfZfDU3wIu57E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EwaldHofman?a=Uwr0jC1hYLk:wH-t7o1V_zg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EwaldHofman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EwaldHofman/~4/Uwr0jC1hYLk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/EwaldHofman/~3/Uwr0jC1hYLk/post.aspx</link>
      <author>Ewald Hofman</author>
      <comments>http://www.ewaldhofman.nl/post/2010/12/12/Customize-Team-Build-2010-e28093-Part-13-Get-control-over-the-Build-Output.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ewaldhofman.nl/post.aspx?id=f51f82b3-0654-4bfd-88fc-adfff1c6510d</guid>
      <pubDate>Sun, 12 Dec 2010 22:57:25 -0700</pubDate>
      <dc:publisher>Ewald Hofman</dc:publisher>
      <pingback:server>http://www.ewaldhofman.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.ewaldhofman.nl/post.aspx?id=f51f82b3-0654-4bfd-88fc-adfff1c6510d</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.ewaldhofman.nl/trackback.axd?id=f51f82b3-0654-4bfd-88fc-adfff1c6510d</trackback:ping>
      <wfw:comment>http://www.ewaldhofman.nl/post/2010/12/12/Customize-Team-Build-2010-e28093-Part-13-Get-control-over-the-Build-Output.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ewaldhofman.nl/syndication.axd?post=f51f82b3-0654-4bfd-88fc-adfff1c6510d</wfw:commentRss>
    <feedburner:origLink>http://www.ewaldhofman.nl/post.aspx?id=f51f82b3-0654-4bfd-88fc-adfff1c6510d</feedburner:origLink></item>
    <item>
      <title>Search files blazing fast</title>
      <description>&lt;p&gt;If you know there is a file somewhere on your machine, but you cannot find it with the default Windows Search Tools (that why they tend to call it Windows Search and not Windows Find &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.ewaldhofman.nl/image.axd?picture=wlEmoticon-smile_1.png" /&gt;) then switch to a tool that really works.&lt;/p&gt;  &lt;p&gt;Go to &lt;a title="http://www.voidtools.com/" href="http://www.voidtools.com/"&gt;http://www.voidtools.com/&lt;/a&gt; to download your copy of Everything. The download is only small (350KB), it indexes fast (within 5 mins) and searches my complete computer even faster then I can type.&lt;/p&gt;  &lt;p&gt;I only blame David Carpenter for not spreading the word more aggressively and for not developing this earlier.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/13rHzrVDv59LNMg_yAMMC1GSb6A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/13rHzrVDv59LNMg_yAMMC1GSb6A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/13rHzrVDv59LNMg_yAMMC1GSb6A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/13rHzrVDv59LNMg_yAMMC1GSb6A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EwaldHofman?a=dtp8oze_34I:R38r17-82ZM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EwaldHofman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EwaldHofman/~4/dtp8oze_34I" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/EwaldHofman/~3/dtp8oze_34I/post.aspx</link>
      <author>Ewald Hofman</author>
      <comments>http://www.ewaldhofman.nl/post/2010/12/09/Search-files-blazing-fast.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ewaldhofman.nl/post.aspx?id=9e77e856-244b-4a8e-bce4-39feede6b898</guid>
      <pubDate>Thu, 09 Dec 2010 17:25:44 -0700</pubDate>
      <dc:publisher>Ewald Hofman</dc:publisher>
      <pingback:server>http://www.ewaldhofman.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.ewaldhofman.nl/post.aspx?id=9e77e856-244b-4a8e-bce4-39feede6b898</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.ewaldhofman.nl/trackback.axd?id=9e77e856-244b-4a8e-bce4-39feede6b898</trackback:ping>
      <wfw:comment>http://www.ewaldhofman.nl/post/2010/12/09/Search-files-blazing-fast.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ewaldhofman.nl/syndication.axd?post=9e77e856-244b-4a8e-bce4-39feede6b898</wfw:commentRss>
    <feedburner:origLink>http://www.ewaldhofman.nl/post.aspx?id=9e77e856-244b-4a8e-bce4-39feede6b898</feedburner:origLink></item>
    <item>
      <title>Programmatically use a server as the Build Server for multiple Project Collections</title>
      <description>&lt;p&gt;&lt;font color="#ff0000"&gt;Important: With this post you create an unsupported scenario by Microsoft. It will break your support for this server with Microsoft. So handle with care.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;I am the administrator an a TFS environment with a lot of Project Collections. In the supported configuration of Microsoft 2010 you need one Build Controller per Project Collection, and it is not supported to have multiple Build Controllers installed. &lt;a href="http://blogs.msdn.com/b/jimlamb/archive/2010/04/13/configuring-multiple-tfs-build-services-on-one-machine.aspx"&gt;Jim Lamb created a post&lt;/a&gt; how you can modify your system to change this behaviour. But since I have so many Project Collections, I automated this with the API of TFS. &lt;/p&gt;  &lt;p&gt;When you install a new build server via the UI, you do the following steps&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Register the build service (with this you hook the windows server into the build server environment)&lt;/li&gt;    &lt;li&gt;Add a new build controller&lt;/li&gt;    &lt;li&gt;Add a new build agent&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;So in pseudo code, the code would look like&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;foreach (projectCollection in GetAllProjectCollections)     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CreateNewWindowsService();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; RegisterService();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AddNewController();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AddNewAgent();      &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The following code fragements show you the most important parts of the method implementations. Attached is the full project.&lt;/p&gt;  &lt;h2&gt;CreateNewWindowsService&lt;/h2&gt;  &lt;p&gt;We create a new windows service with the SC command via the Diagnostics.Process class:&lt;/p&gt;  &lt;pre style="line-height: normal; font-family: "&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: "&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: "&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; pi = &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ProcessStartInfo&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;quot;sc.exe&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: "&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Arguments =&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000" size="2"&gt;.Format(&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;create \&amp;quot;{0}\&amp;quot; start= auto binpath= \&amp;quot;C:\\Program Files\\Microsoft Team Foundation Server 2010\\Tools\\TfsBuildServiceHost.exe &lt;br /&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;/NamedInstance:{0}\&amp;quot; DisplayName= \&amp;quot;Visual Studio Team Foundation Build Service Host ({1})\&amp;quot;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;,&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; serviceHostName, tpcName)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; };&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Process&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;.Start(pi);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pi.Arguments = &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.Format(&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;quot;failure {0} reset= 86400 actions= restart/60000&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size: "&gt;&lt;font color="#000000"&gt;, serviceHostName);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Process&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.Start(pi);&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;h1&gt;RegisterService&lt;/h1&gt;

&lt;p&gt;The trick in this method is that we set the NamedInstance static property. This property is Internal, so we need to set it through reflection. To get information on these you need nice Microsoft friends and the .Net reflector&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.ewaldhofman.nl/image.axd?picture=wlEmoticon-smile.png" /&gt; . &lt;/p&gt;

&lt;pre style="line-height: normal; font-family: "&gt;&lt;font style="font-size: "&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#008000"&gt;// Indicate which build service host instance we are using&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;typeof&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;BuildServiceHostUtilities&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;).Assembly.GetType(&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;quot;Microsoft.TeamFoundation.Build.Config.BuildServiceHostProcess&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;).InvokeMember(&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;&amp;quot;NamedInstance&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font style="font-size: "&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;System.Reflection.&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;BindingFlags&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.NonPublic | System.Reflection.&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;BindingFlags&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.SetProperty | System.Reflection.&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;BindingFlags&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.Static, &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;[] { serviceName });&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#008000"&gt;// Create the build service host&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; serviceHost = buildServer.CreateBuildServiceHost(serviceName, endPoint);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; serviceHost.Save();&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#008000"&gt;// Register the build service host&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;BuildServiceHostUtilities&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;.Register(serviceHost, user, password);&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;h1&gt;AddNewController and AddNewAgent&lt;/h1&gt;

&lt;p&gt;Once you have the BuildServerHost, the rest is pretty straightforward. There are methods on the BuildServerHost to modify the controllers and the agents&lt;/p&gt;

&lt;pre style="line-height: normal; font-family: "&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size: " color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; controller = serviceHost.CreateBuildController(controllerName);&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;pre style="line-height: normal; font-family: "&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size: " color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; agent = controller.ServiceHost.CreateBuildAgent(agentName, buildDirectory, controller);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; controller.AddBuildAgent(agent);&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;pre style="line-height: normal; font-family: "&gt;&lt;font face="Verdana"&gt;You have now seen the highlights of the application. If you need it and want to have sample information when you work in this area, download the app&lt;/font&gt;&lt;/pre&gt;

&lt;pre style="line-height: normal; font-family: "&gt;&lt;a href="http://www.ewaldhofman.nl/file.axd?file=2010%2F11%2FMultiBuildServer.zip"&gt;&lt;font face="Verdana"&gt;TFS2010_RegisterBuildServerToTPCs&lt;/font&gt;&lt;/a&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fQsgOYfpuOPuFxv-4ooFc4ipIYY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fQsgOYfpuOPuFxv-4ooFc4ipIYY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fQsgOYfpuOPuFxv-4ooFc4ipIYY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fQsgOYfpuOPuFxv-4ooFc4ipIYY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EwaldHofman?a=Ou3DIucYW80:OW3sADqCibM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EwaldHofman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EwaldHofman/~4/Ou3DIucYW80" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/EwaldHofman/~3/Ou3DIucYW80/post.aspx</link>
      <author>Ewald Hofman</author>
      <comments>http://www.ewaldhofman.nl/post/2010/11/25/Programmatically-use-a-server-as-the-Build-Server-for-multiple-Project-Collections.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ewaldhofman.nl/post.aspx?id=392e1efb-1fb9-4ae5-91ab-ef204a54edb5</guid>
      <pubDate>Thu, 25 Nov 2010 05:41:13 -0700</pubDate>
      <category>TFS SDK</category>
      <category>VSTS 2010</category>
      <category>Team Build</category>
      <dc:publisher>Ewald Hofman</dc:publisher>
      <pingback:server>http://www.ewaldhofman.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.ewaldhofman.nl/post.aspx?id=392e1efb-1fb9-4ae5-91ab-ef204a54edb5</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.ewaldhofman.nl/trackback.axd?id=392e1efb-1fb9-4ae5-91ab-ef204a54edb5</trackback:ping>
      <wfw:comment>http://www.ewaldhofman.nl/post/2010/11/25/Programmatically-use-a-server-as-the-Build-Server-for-multiple-Project-Collections.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ewaldhofman.nl/syndication.axd?post=392e1efb-1fb9-4ae5-91ab-ef204a54edb5</wfw:commentRss>
    <feedburner:origLink>http://www.ewaldhofman.nl/post.aspx?id=392e1efb-1fb9-4ae5-91ab-ef204a54edb5</feedburner:origLink></item>
    <item>
      <title>Make ‘Associate’ the default checkin action</title>
      <description>&lt;p&gt;When you associate a work item to a checkin, the work item will be resolved by default. Some teams have work items that are bigger then one checkin (although this is not recommended) and don’t want to resolve the work items during a checkin. &lt;/p&gt;  &lt;p&gt;The only ways to modify the behaviour are:&lt;/p&gt;  &lt;p&gt;- Remove the default checkin action from the work item type. Downside is that it is not possible in the UI to choose resolve if you actually want to resolve the work item.&lt;/p&gt;  &lt;p&gt;- Change the Resolve action to associate.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In Visual Studio 2010 you can modify this behaviour by changing a registry setting. Change value the following key to “False”.&lt;/p&gt;  &lt;p&gt;HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\TeamFoundation\SourceControl\Behavior   &lt;br /&gt;@ResolveAsDefaultCheckinAction&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kYY4mPU9aqXUXTAfaatsosvvfOw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kYY4mPU9aqXUXTAfaatsosvvfOw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kYY4mPU9aqXUXTAfaatsosvvfOw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kYY4mPU9aqXUXTAfaatsosvvfOw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EwaldHofman?a=HNZrwHeX0CY:JEUDZSDNxf0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EwaldHofman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EwaldHofman/~4/HNZrwHeX0CY" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/EwaldHofman/~3/HNZrwHeX0CY/post.aspx</link>
      <author>Ewald Hofman</author>
      <comments>http://www.ewaldhofman.nl/post/2010/11/19/Make-e28098Associatee28099-the-default-checkin-action.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ewaldhofman.nl/post.aspx?id=35fed373-f2ee-416d-9cee-ccd88b7c75bd</guid>
      <pubDate>Fri, 19 Nov 2010 00:17:51 -0700</pubDate>
      <dc:publisher>Ewald Hofman</dc:publisher>
      <pingback:server>http://www.ewaldhofman.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.ewaldhofman.nl/post.aspx?id=35fed373-f2ee-416d-9cee-ccd88b7c75bd</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.ewaldhofman.nl/trackback.axd?id=35fed373-f2ee-416d-9cee-ccd88b7c75bd</trackback:ping>
      <wfw:comment>http://www.ewaldhofman.nl/post/2010/11/19/Make-e28098Associatee28099-the-default-checkin-action.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ewaldhofman.nl/syndication.axd?post=35fed373-f2ee-416d-9cee-ccd88b7c75bd</wfw:commentRss>
    <feedburner:origLink>http://www.ewaldhofman.nl/post.aspx?id=35fed373-f2ee-416d-9cee-ccd88b7c75bd</feedburner:origLink></item>
    <item>
      <title>Part 15: Fail a build based on the exit code of a console application</title>
      <description>&lt;p&gt;In the series the following parts have been published&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/04/20/Customize-Team-Build-2010-e28093-Part-1-Introduction.aspx"&gt;Part 1: Introduction&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/04/27/Customize-Team-Build-2010-e28093-Part-2-Add-arguments-and-variables.aspx"&gt;Part 2: Add arguments and variables&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/04/28/Customize-Team-Build-2010-e28093-Part-3-Use-more-complex-arguments.aspx"&gt;Part 3: Use more complex arguments&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/04/29/Customize-Team-Build-2010-e28093-Part-4-Create-your-own-activity.aspx"&gt;Part 4: Create your own activity&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/13/Customize-Team-Build-2010-e28093-Part-5-Increase-AssemblyVersion.aspx"&gt;Part 5: Increase AssemblyVersion&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/17/Customize-Team-Build-2010-e28093-Part-6-Use-custom-type-for-an-argument.aspx"&gt;Part 6: Use custom type for an argument&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/27/Customize-Team-Build-2010-e28093-Part-7-How-is-the-custom-assembly-found.aspx"&gt;Part 7: How is the custom assembly found&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/27/Customize-Team-Build-2010-e28093-Part-8-Send-information-to-the-build-log.aspx"&gt;Part 8: Send information to the build log&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/05/27/Customize-Team-Build-2010-e28093-Part-9-Impersonate-activities-(run-under-other-credentials).aspx"&gt;Part 9: Impersonate activities (run under other credentials)&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/06/01/Customize-Team-Build-2010-e28093-Part-10-Include-Version-Number-in-the-Build-Number.aspx"&gt;Part 10: Include Version Number in the Build Number&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/10/01/Customize-Team-Build-2010-e28093-Part-11-Speed-up-opening-my-build-process-template.aspx"&gt;Part 11: Speed up opening my build process template&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/10/01/Customize-Team-Build-2010-e28093-Part-12-How-to-debug-my-custom-activities.aspx"&gt;Part 12: How to debug my custom activities&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/10/02/Customize-Team-Build-2010-e28093-Part-13-Get-control-over-the-Build-Output.aspx"&gt;Part 13: Get control over the Build Output&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/11/09/Part-14-Execute-a-PowerShell-script.aspx"&gt;Part 14: Execute a PowerShell script&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/?tag=/build+2010+customization"&gt;Part 15: Fail a build based on the exit code of a console application&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2011/04/06/Customize-Team-Build-2010-e28093-Part-16-Specify-the-relative-reference-path.aspx"&gt;Part 16: Specify the relative reference path&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;/p&gt;
&lt;p&gt;When you have a Console Application or a batch file that has errors, the exitcode is set to another value then 0. You would expect that the build would see this and report an error. This is not true however. First we setup the scenario.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add a ConsoleApplication project to your solution you are building. &lt;/li&gt;
&lt;li&gt;In the Main function set the ExitCode to 1&lt;/li&gt;
&lt;pre style="line-height: normal; list-style-type: disc; font-family: "&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #2b91af;"&gt;Program&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; Main(&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="color: #000000;"&gt;[] args)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&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;span style="color: "&gt;&lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;.WriteLine(&lt;/span&gt;&lt;span style="color: "&gt;&lt;span style="color: #a31515;"&gt;"This is an error in the script."&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&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;span style="color: "&gt;&lt;span style="color: #2b91af;"&gt;Environment&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;.ExitCode = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;li&gt;Checkin the code. You can choose to include this Console Application in the build or you can decide to add the exe to source control&lt;/li&gt;
&lt;li&gt;Now modify the Build Process Template CustomTemplate.xaml&lt;/li&gt;
&lt;li&gt;Add an argument ErrornousScript&lt;/li&gt;
&lt;li&gt;Scroll down beneath the TryCatch activity called &amp;ldquo;Try Compile, Test, and Associate Changesets and Work Items&amp;rdquo; &lt;/li&gt;
&lt;li&gt;Add an Sequence activity to the template &lt;/li&gt;
&lt;li&gt;In the Sequence, add a ConvertWorkspaceItem and an InvokeProcess activity (see &lt;a href="http://www.ewaldhofman.nl/post/2010/11/09/Part-14-Execute-a-PowerShell-script.aspx"&gt;Part 14: Execute a PowerShell script&lt;/a&gt;&amp;nbsp; for more detailed steps)&lt;/li&gt;
&lt;li&gt;In the FileName property of the InvokeProcess use the ErrornousScript so the ConsoleApplication will be called.&lt;/li&gt;
&lt;li&gt;Modify the build definition and make sure that the ErrornousScript is executing the exe that is setting the ExitCode to 1.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You have now setup a build definition that will execute the errornous Console Application. When you run it, you will see that the build succeeds. This is not what you want!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.ewaldhofman.nl/image.axd?picture=image_138.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" src="http://www.ewaldhofman.nl/image.axd?picture=image_thumb_140.png" border="0" alt="image" width="736" height="159" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To solve this, you can make use of the Result property on the InvokeProcess activity.&lt;/p&gt;
&lt;p&gt;So lets change our Build Process Template.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add the new variables (scoped to the sequence where you run the Console Application) called ExitCode (type = Int32) and ErrorMessage&lt;/li&gt;
&lt;li&gt;Click on the InvokeProcess activity and change the Result property to ExitCode&lt;/li&gt;
&lt;li&gt;In the Handle Standard Output of the InvokeProcess add a Sequence activity&lt;/li&gt;
&lt;li&gt;In the Sequence activity, add an Assign primitive. Set the following properties: &lt;br /&gt;To = ErrorMessage &lt;br /&gt;Value = If(Not String.IsNullOrEmpty(ErrorMessage), Environment.NewLine + ErrorMessage, "") + stdOutput&lt;/li&gt;
&lt;li&gt;And add the default BuildMessage to the sequence that outputs the stdOutput&lt;/li&gt;
&lt;li&gt;Add beneath the InvokeProcess activity and If activity with the condition ExitCode &amp;lt;&amp;gt; 0&lt;/li&gt;
&lt;li&gt;In the Then section add a Throw activity and set the Exception property to New Exception(ErrorMessage)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The complete workflow looks now like&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.ewaldhofman.nl/image.axd?picture=image_139.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" src="http://www.ewaldhofman.nl/image.axd?picture=image_thumb_141.png" border="0" alt="image" width="382" height="649" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When you now check in the Build Process Template and run the build, you get the following result&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.ewaldhofman.nl/image.axd?picture=image_140.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" src="http://www.ewaldhofman.nl/image.axd?picture=image_thumb_142.png" border="0" alt="image" width="559" height="358" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And that is exactly what we want.&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can download the full solution at &lt;a href="http://www.ewaldhofman.nl/file.axd?file=2010%2f5%2fBuildProcess.zip"&gt;BuildProcess.zip&lt;/a&gt;. It will include the sources of every part and will continue to evolve.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/f5r3aV7LZJhaVZqhXpk8NFsFrYU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f5r3aV7LZJhaVZqhXpk8NFsFrYU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/f5r3aV7LZJhaVZqhXpk8NFsFrYU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f5r3aV7LZJhaVZqhXpk8NFsFrYU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/EwaldHofman?a=FEXvudrHXyk:kHTvrkjssvY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/EwaldHofman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EwaldHofman/~4/FEXvudrHXyk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/EwaldHofman/~3/FEXvudrHXyk/post.aspx</link>
      <author>Ewald Hofman</author>
      <comments>http://www.ewaldhofman.nl/post/2010/11/09/Part-15-Fail-a-build-based-on-the-exit-code-of-a-console-application.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ewaldhofman.nl/post.aspx?id=cc5c4d51-e6bd-423a-a4f9-b5e821d5bdaf</guid>
      <pubDate>Tue, 09 Nov 2010 06:51:00 -0700</pubDate>
      <category>Team Build</category>
      <category>VS 2010</category>
      <dc:publisher>Ewald Hofman</dc:publisher>
      <pingback:server>http://www.ewaldhofman.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.ewaldhofman.nl/post.aspx?id=cc5c4d51-e6bd-423a-a4f9-b5e821d5bdaf</pingback:target>
      <slash:comments>8</slash:comments>
      <trackback:ping>http://www.ewaldhofman.nl/trackback.axd?id=cc5c4d51-e6bd-423a-a4f9-b5e821d5bdaf</trackback:ping>
      <wfw:comment>http://www.ewaldhofman.nl/post/2010/11/09/Part-15-Fail-a-build-based-on-the-exit-code-of-a-console-application.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ewaldhofman.nl/syndication.axd?post=cc5c4d51-e6bd-423a-a4f9-b5e821d5bdaf</wfw:commentRss>
    <feedburner:origLink>http://www.ewaldhofman.nl/post.aspx?id=cc5c4d51-e6bd-423a-a4f9-b5e821d5bdaf</feedburner:origLink></item>
  </channel>
</rss>

