<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://manicprogrammer.com/cs/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">if ( ! blogClogged )</title><subtitle type="html">Most things software, Many things VSTS/TFS, Lots of things something else</subtitle><id>http://manicprogrammer.com/cs/blogs/michaelruminer/atom.aspx</id><link rel="alternate" type="text/html" href="http://manicprogrammer.com/cs/blogs/michaelruminer/default.aspx" /><link rel="self" type="application/atom+xml" href="http://manicprogrammer.com/cs/blogs/michaelruminer/atom.aspx" /><generator uri="http://communityserver.org" version="2.1.61129.1">Community Server</generator><updated>2007-12-30T16:19:26Z</updated><entry><title>Connecticut .NET Developers Group (CTDOTNET) First CodeCamp - August 2008</title><link rel="alternate" type="text/html" href="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/07/04/connecticut-net-developers-group-ctdotnet-first-codecamp-august-2008.aspx" /><id>http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/07/04/connecticut-net-developers-group-ctdotnet-first-codecamp-august-2008.aspx</id><published>2008-07-04T18:34:49Z</published><updated>2008-07-04T18:34:49Z</updated><content type="html">&lt;p&gt;The &lt;a title="Link to CTDOTNET Website" href="http://www.ctdotnet.com/" target="_blank"&gt;Connecticut .NET Developers Group&lt;/a&gt; is having their first ever CodeCamp in Hartford, CT (USA) on August 16th, 2008 from 9am to 5pm at the New Horizons Computer Learning Center (&lt;a title="Directions to the center" href="http://www.newhorizons.com/content/centerSearchResults.aspx?SiteId=25" target="_blank"&gt;directions to the center&lt;/a&gt;) in Bloomfield, CT. If you have never attended a CodeCamp, they just simply rock. It's technical content for technical folks without the fluff and without the marketing spin. It's all about the code. See the &lt;a title="Link To CodeCamp Manifesto" href="http://www.thedevcommunity.org/codecamps/manifesto.aspx" target="_blank"&gt;CodeCamp Manifesto&lt;/a&gt; for the dirty on the premise of a CodeCamp. &lt;/p&gt; &lt;p&gt;The ones in Boston and elsewhere that I have attended have always been great. I'll be excited to participate in the first Connecticut .NET Developers Group CodeCamp see some people I haven't seen in a while and meet some people I should know. I was able to be a part of the first Twin Cities Code Camp and wish I had been a part of the first Boston Code Camp. It's always lots of fun for attendees and presenters. What I really like about the one coming up in Hartford is the allotment of 90 minutes. In Boston, CodeCamp runs two weekend days and you have typically (if I am not mistaken) had about 60 minutes to present. I know from trying to do sessions at conferences and sessions that 50-60 minutes is actually really hard to fit good quality technical information into. 90 minutes sounds just right. &lt;/p&gt; &lt;p&gt;I have a talk I hope to be able to give that I had proposed for Tech Ed for it was not picked up. So I will&amp;nbsp; hopefully get to work it all up and toss it at at this CodeCamp. Woohoo!&lt;/p&gt; &lt;p&gt;So... if you are in the neighborhood don't miss it.&lt;/p&gt;&lt;img src="http://manicprogrammer.com/cs/aggbug.aspx?PostID=2018" width="1" height="1"&gt;</content><author><name>michaelruminer</name><uri>http://manicprogrammer.com/cs/members/michaelruminer.aspx</uri></author><category term="CodeCamp" scheme="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/tags/CodeCamp/default.aspx" /></entry><entry><title>What would make Apture better?</title><link rel="alternate" type="text/html" href="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/07/01/what-would-make-apture-better.aspx" /><id>http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/07/01/what-would-make-apture-better.aspx</id><published>2008-07-01T08:59:49Z</published><updated>2008-07-01T08:59:49Z</updated><content type="html">&lt;p&gt;I recently started taking &lt;a title="Link to Apture website" href="http://www.apture.com/" target="_blank"&gt;Apture&lt;/a&gt; for a test drive. I twittered a comment on it stating that I liked it but thought it would likely be a lot of work. Apparently, Theresa at Apture monitors twitters as she dropped me a comment on my blog that asked... &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;I saw your status message on twitter, actually.&amp;nbsp; Was it as time consuming/difficult as you thought?&amp;nbsp; How could we make it simpler?&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Here is my response. Yes it is as time consuming as I thought. More on that in a bit. First how it could be made simpler. I realize this is a Beta product and Apture is understandably working on getting this out the door in the most agnostic way possible but since you asked.  &lt;ol&gt; &lt;li&gt;I was going to begin with stating that the complete list of FAQ questions should actually have content behind the FAQ. The day I went to install and start using Apture about half the FAQ links were not hyperlinked to anywhere and I was really interested in the one such as 'Is there an Apture API?' I just checked again and now it seems most of the links actually hook you to an answer of some sort though 'Is there an Apture API?' just comes up and tells me "Coming soon...". Out of context the reader may assume that means the API is coming soon but I think it means the answer is coming soon as others questions had the same response.  &lt;li&gt;More clearly state how to create the Apture links. The assumption in the docs is that everyone is using a web browser to generate their posts and thus indicates like 'Just hit 'e' to edit an Apture link'. Hit 'e' where? I'm a pretty technical guy, aging but technical, and it took me a while to figure out that I had to go out to the page after I published and start doing round two of markup to really use the tool. I knew I couldn't hit 'e' inside Windows Live Writer but couldn't figure out where the heck I made these entries. It was very much unclear. I spent a half hour, I assume, puttering around inside the Apture site trying to find a control panel or better explanation of what to do. Nowhere was there a darn screen shot that I could find of actually doing the markup. Only of the results.  &lt;li&gt;&lt;strong&gt;THIS IS A BIG ONE--- I must be able to title the content I embed inside Apture.&lt;/strong&gt;&amp;nbsp; I added an MP3 file from&amp;nbsp; &lt;a title=".NET Rocks website" href="http://www.dotnetrocks.com/" target="_blank"&gt;.NET Rocks&lt;/a&gt; (with permission from .NET Rocks) but as you can see from the screen shot below it shows the physical name of the file on the little blowout window. That means nothing to me much less the casual visitor. There was no way I could find to title the entry. I could add some text description but that is not what shows in the blowout. I need to be able to title the content.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://manicprogrammer.com/cs/blogs/michaelruminer/images/WhatwouldmakeApturebetter_4630/image.png" target="_blank"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="484" alt="image" src="http://manicprogrammer.com/cs/blogs/michaelruminer/images/WhatwouldmakeApturebetter_4630/image_thumb.png" width="335" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&amp;nbsp; 4. I want to put in a URL that is not searched for media but would simply be a snapshot of the page and link to it. I want an image of that page more like snap.com would give me, but of course without you violating someone's patent. I don't like seeing something like the below to link to a blog or other non media URL. If I am going to have the Apture do-hickey come up I want it to contain nicely formatted links to all the content for that link. See below for what I get now pointing to a blog. I don't like it but can live with it for now. &lt;/p&gt; &lt;p&gt;&lt;a href="http://manicprogrammer.com/cs/blogs/michaelruminer/images/WhatwouldmakeApturebetter_4630/image_3.png" target="_blank"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="465" alt="image" src="http://manicprogrammer.com/cs/blogs/michaelruminer/images/WhatwouldmakeApturebetter_4630/image_thumb_3.png" width="644" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp; 5. As I mentioned this is a beta but you did ask and you did ask me what I wanted and this is what I want. I want a tie in to Windows Live Writer so that to use Apture I don't have to edit my page twice. Once in Live Writer then post it and mark it up with Apture.&lt;/p&gt; &lt;p&gt;6. Auto links are not enough. I surely hope that part of the goal is context driven media with more insight than just a Google search but that if I link certain videos to a word or phrase you take notice and the next person that does so sees what others have linked to for the same word of phrase. I don't want to reinvent the wheel each time. The feedback loop is important. Just as important, once I link to a phrase for my account if I add that phrase elsewhere in the future and mark it for linkage I want all the content I have ever linked to for that phrase to be included by default- again I don't want to have to generate connections all over again. Perhaps this latter comment happens already- I honestly haven't tried. &lt;strong&gt;UPDATE*** I just tried this after posting and here is what I got. What a relief! &lt;/strong&gt;It's not everything but better than I thought.&lt;/p&gt; &lt;p&gt;&lt;a href="http://manicprogrammer.com/cs/blogs/michaelruminer/images/WhatwouldmakeApturebetter_4630/image_5.png" target="_blank"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="484" alt="image" src="http://manicprogrammer.com/cs/blogs/michaelruminer/images/WhatwouldmakeApturebetter_4630/image_thumb_5.png" width="415" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;7. In line with #6 I want to be able to include some content and mark it is held. To be attached permanently to the link but for other content to be dynamically changing so that more high ranking links to content for the same phrase could displace some content that exists. &lt;/p&gt; &lt;p&gt;8. Along with 6 and 7 I want to lay claim (such as with a concept like &lt;a title="Link to Korby Parnells Claimspace post" href="http://blogs.msdn.com/korbyp/archive/2007/04/19/tagspace-meet-claimspace.aspx" target="_blank"&gt;Claimspace&lt;/a&gt;) to my identity and thus provide an official multi-media set of link recommendations for people that may be linking to me. So they get recommended recent and valid context for my name, blog, website etc.&lt;/p&gt; &lt;p&gt;9.&amp;nbsp; &lt;strong&gt;DID I MENTION? &lt;/strong&gt;Yes, but it is worth mentioning again&lt;strong&gt;-- I DON'T WANT TO HAVE TO MARK UP MY PAGE TWICE AND WANT AN EASY PLUG IN ARCHITECTURE. &lt;/strong&gt;Or at least a Live Writer plug in&lt;strong&gt; &lt;/strong&gt;or API so I can hook it into Live Writer myself.&lt;/p&gt; &lt;p&gt;10. I don't want the response to all these requests to be. 'We plan to do that.' Don't talk to me about it just do that parts you will do in the time you can do them. These are only suggestions after all. I'm not a patient person and lose interest quickly in things not returning value. Not directed at you but more of a general musing-- I wonder how many times a day I must say "I don't want to talk about it anymore. We can either talk about it or we can do it. Let's just go do a part of it and discuss the results"&lt;/p&gt; &lt;p&gt;11. Look at all of the above screen shots. Nowhere can I find a means to allow the reader to click a link or button and get a set of results for a query on content for the same phrase (such as Mike Azocar-- I put this in only to test a feature of Apture) I am linked to. I don't want to link to the world but I'd like to have the world readily available to the user. They should see be able to click through to a search results screen just as I do when adding content. Maybe they can but I don't see it as an intuitive option on any of the above images. For those not using the tool. This is what I see when I click 'Add Related Media'&lt;/p&gt; &lt;p&gt;&lt;a href="http://manicprogrammer.com/cs/blogs/michaelruminer/images/WhatwouldmakeApturebetter_4630/image_4.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="484" alt="image" src="http://manicprogrammer.com/cs/blogs/michaelruminer/images/WhatwouldmakeApturebetter_4630/image_thumb_4.png" width="451" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Why Do I not see &lt;/strong&gt;even all the video content I linked to. Did you learn nothing when I linked Mike's name to two videos. You don't show but one of the two. You should have captured that contextual relationship and next time anyone looks up Mike they would at least find everything I linked to. I don't even see everything I linked to. &lt;strong&gt;Oddly- I have come to find out but I am not sure how it is that I can get stuff I linked to in some scenarios and not in others&lt;/strong&gt;(see earlier comments in bold)&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&amp;nbsp; 12. When I search for media I want to not have to go to another window to do a REAL search engine search and bring back the results. Let me search right inside the &lt;em&gt;Media Hub&lt;/em&gt; window on any of the major search engines for content. For those of us doing more than just showing videos of &lt;a class="aptureAutolink" title="Link to Wikipedia" href="http://en.wikipedia.org/wiki/Lonelygirl15" target="_blank"&gt;Lonely Girl 15&lt;/a&gt; (btw... I just decorated the prior link with the autolink class... let's see how it works when I publish) or a cat playing with string we will often not find our content on YouTube.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I could go on. All in all I really like the premise and the look. I do hope that it becomes less burdensome and more contextually valid based on applying the contextual relationships all the users create. I think it looks smart but I am not certain if enough 'real' people have used the software. It seems evidenced from the very limited search function that this has not been put through its paces enough with day to day users. I expect that will come.&amp;nbsp; I just hope you have some kick ass database guys and smart folks to make the contextual linking be what I would want it to be if I were building the tool.&lt;/p&gt; &lt;p&gt;To others, not Theresa, try out Apture. If not for you then for me. I want your contextual connections to content. BTW... Theresa, I want microformats and semantics.&lt;/p&gt;&lt;img src="http://manicprogrammer.com/cs/aggbug.aspx?PostID=1921" width="1" height="1"&gt;</content><author><name>michaelruminer</name><uri>http://manicprogrammer.com/cs/members/michaelruminer.aspx</uri></author><category term="apture" scheme="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/tags/apture/default.aspx" /><category term="twitter" scheme="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/tags/twitter/default.aspx" /></entry><entry><title>Visual Studio 2008 DB Pro GDR CTP and max model size</title><link rel="alternate" type="text/html" href="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/30/visual-studio-2008-db-pro-gdr-ctp-and-max-model-size.aspx" /><id>http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/30/visual-studio-2008-db-pro-gdr-ctp-and-max-model-size.aspx</id><published>2008-06-30T11:30:09Z</published><updated>2008-06-30T11:30:09Z</updated><content type="html">&lt;p&gt;If you are using the Visual Studio 2008 DB Pro GDR CTP (that's a mouthful) you may run into a schema model size limitation. This will seemingly be resolved in the CTP 15 release expected toward the mid to end of July but until them if you happen to be using a database that generates a&amp;nbsp; model greater than 257MB you're out of luck. The following error will come up: The database file is larger than then configured maximum database size. This setting takes effect on the first concurrent database connection only. [ Required Max Database Size (in MB; 0 if unknown) = 257 ]&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://manicprogrammer.com/cs/blogs/michaelruminer/images/VisualStudio2008DBProGDRCTPandmaxmodelsi_697C/dbfilelarger.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="267" alt="dbfile larger" src="http://manicprogrammer.com/cs/blogs/michaelruminer/images/VisualStudio2008DBProGDRCTPandmaxmodelsi_697C/dbfilelarger_thumb.jpg" width="605" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;When I first found this message staring at me on my screen I googled it and found the a&amp;nbsp; few &lt;a title="Link to a post indicating about MaxDatabase in CE" href="http://blogs.msdn.com/sqlservercompact/archive/2007/06/13/the-story-of-max-database-size-connection-string-parameter.aspx" target="_blank"&gt;posts&lt;/a&gt; all referring to SQL Server CE. I knew that the DB Pro GDR was a significant architectural change from the prior final release of DB Pro and that the design DB had gone off into the sunset; yet, I never suspected SQL Server CE had replaced it. It did not give me a warm fuzzy when my primary concern had been around scalability in the schema. But I also know very little on SQL Server CE and told myself I need to not think of Compact Edition as less performant for this situation (I certainly plan to investigate CE much more closely). I poked around in the options for the database settings in Visual Studio but found nothing. I may have looked in the registry but it turns out that regardless I would not have found a fix. I posted out on the &lt;a title="Link to Michael Ruminer's post on forurms" href="http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3533678&amp;amp;SiteID=1" target="_blank"&gt;MSDN Forums&lt;/a&gt; and received the following back from &lt;a title="Gert Draper's blog" href="http://blogs.msdn.com/gertd/" target="_blank"&gt;Gert Draper&lt;/a&gt; , a Group Engineering Manager at Microsoft in the Team System world and from my experiences in the past an all around good guy.&lt;/p&gt; &lt;p&gt;Gert says:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;We know what the scenario is, we create the model database with a max 4GB limit, secondary connections do not specify the max, there seems to be a behavioral change in SQL CE3.5 where it now uses the default size of 256MB when not specified in the secondary connection, instead of inheriting from the connection that created and opened the database to begin with. &lt;/em&gt; &lt;p&gt;&lt;em&gt;More info on this can be found here: &lt;/em&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/sqlservercompact/archive/2007/06/13/the-story-of-max-database-size-connection-string-parameter.aspx"&gt;&lt;em&gt;http://blogs.msdn.com/sqlservercompact/archive/2007/06/13/the-story-of-max-database-size-connection-string-parameter.aspx&lt;/em&gt;&lt;/a&gt; &lt;p&gt;&lt;em&gt;Right now I do not have a work around.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt; Gert went on to tell me later that this is expected to be resolved in the CTP 15 that should be available around mid to late July (2008). Gert and I had already shared this specific database schema&amp;nbsp; in the past because under the current release version it simply will not load 75% of the time because of the current architecture of the DB Pro SKU. It just runs out of memory on a 3 GB machine and when it does load due to all the attempted real time background compile it becomes unusable when trying to edit the objects in the project.&amp;nbsp; &lt;/p&gt; &lt;p&gt;I have been patiently but with great anticipation awaiting this GDR as my expectations were high that it would solve &lt;em&gt;all &lt;/em&gt;my problems for me in terms of scaling to meet a very large database schema. The GDR is only a CTP and thus I will hold my determination for when it is released. I have thus far seen some improvements but I have lowered my personal expectations quite a bit from what they were and have become somewhat resigned that in managing this sort of database (having in excess of 13,000 stored procedures) in DB Pro&amp;nbsp; will prove to just not be doable even on this coming release. &lt;/p&gt; &lt;p&gt;I hope, I hope I am wrong. &lt;/p&gt;&lt;img src="http://manicprogrammer.com/cs/aggbug.aspx?PostID=1914" width="1" height="1"&gt;</content><author><name>michaelruminer</name><uri>http://manicprogrammer.com/cs/members/michaelruminer.aspx</uri></author><category term="Visual Studio 2008 Database Edition GDR June CTP" scheme="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/tags/Visual+Studio+2008+Database+Edition+GDR+June+CTP/default.aspx" /><category term="Data Dude" scheme="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/tags/Data+Dude/default.aspx" /><category term="DBPro" scheme="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/tags/DBPro/default.aspx" /></entry><entry><title>Want to feel good about your code???</title><link rel="alternate" type="text/html" href="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/28/want-to-feel-good-about-your-code.aspx" /><id>http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/28/want-to-feel-good-about-your-code.aspx</id><published>2008-06-28T16:10:37Z</published><updated>2008-06-28T16:10:37Z</updated><content type="html">&lt;p&gt;Want to feel good about your code? I'm migrating some legacy .NET 1.1 code (that no one still with the organization wrote) into the latest framework and keep running into method after method that looks like the below.&amp;nbsp; Hmm... If OK then do this. Else just do the same thing.&lt;/p&gt; &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, 'Courier New', courier, monospace;background-color:#f4f4f4;"&gt; &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; Result = SQLResults.OK &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;      pnlonjobs.Visible = &lt;span style="color:#0000ff;"&gt;True&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;      dlstOnJobs.DataSource = dtSearchTable&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;      dlstOnJobs.DataBind()&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;  &lt;span style="color:#0000ff;"&gt;Else&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;      pnlonjobs.Visible = &lt;span style="color:#0000ff;"&gt;True&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;      dlstOnJobs.DataSource = dtSearchTable&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt;      dlstOnJobs.DataBind()&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; If&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have dealt with a lot of legacy application and long lived software and they always get into embarrassing states but for the life of me I can't imagine the mechanism behind code ever evolving into this outside of some sort of global search and replace. Mind boggling. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And about as good as the above. That code lived in the try block below... again in method after method after method this was the pattern.&lt;/p&gt;
&lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, 'Courier New', courier, monospace;background-color:#f4f4f4;"&gt;
&lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Try&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;     ...&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Catch&lt;/span&gt; ex &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; Exception&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;Throw&lt;/span&gt; ex&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Finally&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;     ...&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; Try&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There is an arguable case for the above if you wish to blow away the underlying stack trace from the exception before it bubbles up... but this is not the case here I assure you.&lt;/p&gt;&lt;img src="http://manicprogrammer.com/cs/aggbug.aspx?PostID=1910" width="1" height="1"&gt;</content><author><name>michaelruminer</name><uri>http://manicprogrammer.com/cs/members/michaelruminer.aspx</uri></author></entry><entry><title>One of my favorite things about Visual Studio 2008 - Intellisense and  the CTRL key</title><link rel="alternate" type="text/html" href="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/28/one-of-my-favorite-things-about-visual-studio-2008-intellisense-and-the-ctrl-key.aspx" /><id>http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/28/one-of-my-favorite-things-about-visual-studio-2008-intellisense-and-the-ctrl-key.aspx</id><published>2008-06-28T15:53:14Z</published><updated>2008-06-28T15:53:14Z</updated><content type="html">&lt;p&gt;One of my favorite new features of Visual Studio 2008 is the ability to have Intellisense turned on and still be able to see what the heck I am doing. I'm always refactoring and invariably I want to see the code just beneath where the intellisense has come up. If you didn't know give it a whirl. Just hold down &lt;strong&gt;&lt;em&gt;Ctrl&lt;/em&gt;&lt;/strong&gt; and watch that intellisense become transparent. It's the little things that matter.&lt;/p&gt;&lt;img src="http://manicprogrammer.com/cs/aggbug.aspx?PostID=1909" width="1" height="1"&gt;</content><author><name>michaelruminer</name><uri>http://manicprogrammer.com/cs/members/michaelruminer.aspx</uri></author></entry><entry><title>Learning Something New on MSBuild Targets and Conditions</title><link rel="alternate" type="text/html" href="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/28/learning-something-new-on-msbuild-targets-and-conditions.aspx" /><id>http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/28/learning-something-new-on-msbuild-targets-and-conditions.aspx</id><published>2008-06-28T12:51:35Z</published><updated>2008-06-28T12:51:35Z</updated><content type="html">&lt;p&gt;I love learning something new. Especially something that goes against what I would have expected. Such is the case with MSBuild Targets and conditions. A few days ago I posted about &lt;a title="Link to prior post on Enforcing Build Agents in a Team Build" href="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/19/enforcing-the-build-agent-in-a-team-build.aspx" target="_blank"&gt;Enforcing Build Agents in a Team Build&lt;/a&gt;. I challenged others to show me the better way to do what I wanted and &lt;a title="Ibrahim's Blog" href="http://www.sedodream.com/default.aspx" target="_blank"&gt;Ibrahim Hashimi&lt;/a&gt; took up the gauntlet and did just that. Actually, he has challenged that post twice now and I learn something each time. Go Ibrahim! The latest post on &lt;a title="Link to Ibrahim's post on MSBuild Conditions in Targets" href="http://www.sedodream.com/PermaLink,guid,a3e0f4b1-5714-4491-9134-cce95b1d6e19.aspx" target="_blank"&gt;MSBuild Conditions in Targets&lt;/a&gt; was especially interesting. Though I didn't agree with Ibrahim about not using Conditions on targets when I began reading it he makes an interesting case in his example that I would not have expected to see and didn't realize would be the case. I have since joined him in thought. I know I will now be much more careful about how I use conditions with my targets to ensure I get the expected outcome.&lt;/p&gt; &lt;p&gt;I had planned to write out a post saying that what Ibrahim had failed to point out, though it made his point no less valid, is that this only occurs if you call the target explicitly such as in his example of &lt;b&gt;msbuild /t:Demo&lt;/b&gt; or if you did the following calling &lt;strong&gt;msbuild /t:InitTarget&lt;/strong&gt;.&lt;/p&gt; &lt;blockquote&gt; &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, 'Courier New', courier, monospace;background-color:#f4f4f4;"&gt; &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#800000;"&gt;xml&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;version&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="1.0"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;encoding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="utf-8"&lt;/span&gt;?&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Project&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ToolsVersion&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="2.0"&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;          &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="http://schemas.microsoft.com/developer/msbuild/2003"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;          &lt;span style="color:#ff0000;"&gt;DefaultTargets&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Demo"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;AllowTarget&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;AllowTarget&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  10:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Target&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="InitTarget"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  11:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  12:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;CallTarget&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Targets&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Demo"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  13:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  14:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Target&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  15:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  16:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Target&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="SupressTarget"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  17:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;CreateProperty&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="false"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  18:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Output&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;PropertyName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="AllowTarget"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;TaskParameter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Value"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  19:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;CreateProperty&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  20:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Message&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=" ==== SupressTarget ==== "&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Importance&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="high"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  21:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Message&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="AllowTarget: $(AllowTarget)"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  22:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Target&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  23:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  24:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Target&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Demo"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Condition&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="'$(AllowTarget)'=='true'"&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  25:&lt;/span&gt;           &lt;span style="color:#ff0000;"&gt;DependsOnTargets&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="SupressTarget"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  26:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Message&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=" ===== Demo ===== "&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Importance&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="high"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  27:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  28:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Message&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="AllowTarget: $(AllowTarget)"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  29:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Target&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  30:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Project&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I had then planned to go on and say (&lt;strong&gt;wrongly) &lt;/strong&gt;that if you had it implicitly called as would be the case below you would get the often expected results of the Demo target not running- &lt;strong&gt;msbuild /t:InitTarget&lt;/strong&gt;:&lt;/p&gt;
&lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, 'Courier New', courier, monospace;background-color:#f4f4f4;"&gt;
&lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#800000;"&gt;xml&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;version&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="1.0"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;encoding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="utf-8"&lt;/span&gt;?&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Project&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ToolsVersion&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="2.0"&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;          &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="http://schemas.microsoft.com/developer/msbuild/2003"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;          &lt;span style="color:#ff0000;"&gt;DefaultTargets&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Demo"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;AllowTarget&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;AllowTarget&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  10:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Target&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="InitTarget"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;DependsOnTargets&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Demo"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  11:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  12:&lt;/span&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Message&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=" ===== InitTarget ===== "&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Importance&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="high"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  13:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  14:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Target&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  15:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  16:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Target&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="SupressTarget"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  17:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;CreateProperty&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="false"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  18:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Output&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;PropertyName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="AllowTarget"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;TaskParameter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Value"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  19:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;CreateProperty&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  20:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Message&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=" ==== SupressTarget ==== "&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Importance&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="high"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  21:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Message&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="AllowTarget: $(AllowTarget)"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  22:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Target&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  23:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  24:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Target&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Demo"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Condition&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="'$(AllowTarget)'=='true'"&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  25:&lt;/span&gt;           &lt;span style="color:#ff0000;"&gt;DependsOnTargets&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="SupressTarget"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  26:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Message&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=" ===== Demo ===== "&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Importance&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="high"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  27:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  28:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Message&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="AllowTarget: $(AllowTarget)"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  29:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Target&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  30:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Project&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;I had expected that since it set up my tree for execution by walking backwards up the dependencies the engine would say - Let's see you want to run InitTarget which means I need to include Demo which means I need to include SuppressTarget so here is what I'll run for you and evaluate if each target runs as I get to it: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SuppressTarget 
&lt;li&gt;Demo 
&lt;li&gt;InitTarget&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Imagine my surprise when I ran the above script and got the following output:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://manicprogrammer.com/cs/blogs/michaelruminer/images/LearningSomethingNewonMSBuildTargetsandC_7C8D/targettestimage.jpg" target="_blank"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="347" alt="targettest image" src="http://manicprogrammer.com/cs/blogs/michaelruminer/images/LearningSomethingNewonMSBuildTargetsandC_7C8D/targettestimage_thumb.jpg" width="669" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;h1&gt;DOH!&lt;/h1&gt;
&lt;p&gt;Not what I expected. I would have bet the farm that as long as the target was not explicitly called but was executed based upon dependencies only that I would have received the results I expected. I would have lost the farm and man oh man would my wife have been upset. I suspect this is because I don't realize what that DependsUponTargets really gets translated into. Which is the point Ibrahim was making not about me specifically but about room for confusion in general. The target has already been chosen to exist and run. Very interesting.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;I plan to play around with this a bit more. It may bring to light I have some scripts that don't actually work the way I expect. Hmm... I must digest this.&lt;/p&gt;&lt;img src="http://manicprogrammer.com/cs/aggbug.aspx?PostID=1907" width="1" height="1"&gt;</content><author><name>michaelruminer</name><uri>http://manicprogrammer.com/cs/members/michaelruminer.aspx</uri></author><category term="MSBuild" scheme="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/tags/MSBuild/default.aspx" /></entry><entry><title>Coolest Team System Gadget Contest</title><link rel="alternate" type="text/html" href="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/22/coolest-team-system-gadget-contest.aspx" /><id>http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/22/coolest-team-system-gadget-contest.aspx</id><published>2008-06-22T12:58:55Z</published><updated>2008-06-22T12:58:55Z</updated><content type="html">&lt;p&gt;&lt;a class="aptureAutolink" title="Link to Mike Azocar's home page" href="http://www.michaelazocar.com/" target="_blank"&gt;Mike Azocar&lt;/a&gt; is running a &lt;a class="aptureAutolink" title="Link to Aozcar's Coolest Team System Gadget Contest Ever Post" href="http://www.michaelazocar.com/blog/?p=485" target="_blank"&gt;Coolest Team System Gadget Contest&lt;/a&gt;. I know I'll be contributing something most likely related to managing my large volume of build definitions. If you have a feature you'd like to see in an add in tool for managing builds in Team System 2008 drop me a line.&lt;/p&gt;&lt;img src="http://manicprogrammer.com/cs/aggbug.aspx?PostID=1893" width="1" height="1"&gt;</content><author><name>michaelruminer</name><uri>http://manicprogrammer.com/cs/members/michaelruminer.aspx</uri></author><category term="TFS 2008" scheme="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/tags/TFS+2008/default.aspx" /><category term="Team Build 2008" scheme="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/tags/Team+Build+2008/default.aspx" /></entry><entry><title>Enforcing the Build Agent in a Team Build</title><link rel="alternate" type="text/html" href="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/19/enforcing-the-build-agent-in-a-team-build.aspx" /><id>http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/19/enforcing-the-build-agent-in-a-team-build.aspx</id><published>2008-06-20T01:51:00Z</published><updated>2008-06-20T01:51:00Z</updated><content type="html">&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From time to time you may have a need to ensure that a specific team build only runs on a specific build agent. I can't recall but I think that this is a forthcoming feature in the v.Next major release of TFS code named Rosario (I'll check to see if that is indeed a forthcoming feature). In Team Build 2008 there is not a ready mechanism to do so except with the blunt tool of being able to define build agents for a team project. So I'm going to throw you my little script that I use to evaluate the build agent at run time of the build script and have it fail if it is not authorized.&lt;/P&gt;
&lt;P&gt;There is an easy enough means to do this if you want to evaluate to see if the build agent running the script matches a single allowed build agent name but if you get into saying that any 1 of 20 build agents can build a script you'll be a but more hard pressed to do so without a script like mine or a custom task. I try to avoid a custom task in these scenarios because it's just one more thing to need to be compiled on some occasion.&amp;nbsp; Oddly, in trying to avoid a custom task I ended up having to use MSBuild.Community.Tasks because I just could not get MSBuild to do exactly what I wanted.&lt;/P&gt;
&lt;P&gt;Some may ask why you might only allow certain build agents to build certain scripts. A few reasons come to mind such as resource usage by the build, testing or network utilization such as large file copies. In my case I have some build servers that I'm having trouble with in automated creation of virtual directories and I want to ensure certain builds aren't even attempted on these machines until I resolve it.&lt;/P&gt;
&lt;P&gt;If you only want to evaluate if a single build agent is running a script and error out if not then surely all you need is the following:&lt;BR&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;DIV style="BORDER-RIGHT:gray 1px solid;PADDING-RIGHT:4px;BORDER-TOP:gray 1px solid;PADDING-LEFT:4px;FONT-SIZE:8pt;PADDING-BOTTOM:4px;MARGIN:20px 0px 10px;OVERFLOW:auto;BORDER-LEFT:gray 1px solid;WIDTH:89.39%;CURSOR:text;MAX-HEIGHT:200px;LINE-HEIGHT:12pt;PADDING-TOP:4px;BORDER-BOTTOM:gray 1px solid;FONT-FAMILY:consolas, 'Courier New', courier, monospace;HEIGHT:84px;BACKGROUND-COLOR:#f4f4f4;"&gt;
&lt;DIV style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   1:&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Target&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Name&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="BeforeEndToEndIteration"&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Condition&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="'$(BuildAgentName)'!='MYFAVORITEBUILDAGENT'"&lt;/SPAN&gt;  &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   2:&lt;/SPAN&gt;      &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Text&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="This build can only be run on myfavoritebuildserver"&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   3:&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Target&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;But if you need to allow a script to run on 5 of 10 build agents setup for a team project then you will need something a bit more elaborate while still being easy to maintain and reuse. Obviously, each build script has a default build agent but nothing guarantees someone won't see a build already running on that agent and select another when queuing it up. And it may happen, based on the nature of the build, that I don't want a multi-hour full database deploy and system recompilation build running on the machines I expect to run quick CI builds. 
&lt;P&gt;I'm a big fan of batching in MSBuild. My first thought was I want to have an item group I can easily add items representing build agent names into. This list will be used to determine if the build agent running the script is allowed to run the script. If the build agent's name appears in the item list then it's golden. 
&lt;P&gt;Perfect! 
&lt;P&gt;Guess what. I couldn't figure out how I could readily batch across the list and come out the other side with an indicator if the build agent was in the list. I knew I needed the following: 
&lt;P&gt;(pseudocode) 
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=cons size=2&gt;set a property indicating if build agent is authorized to false&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=cons size=2&gt;for each authorized agent in the list see if it is the agent running the build&lt;/FONT&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=cons size=2&gt;if so set the flag about authorized to true&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT face=cons size=2&gt;when done with loop see if flag is now true&lt;/FONT&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=cons size=2&gt;if not throw an error and end&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Happliy: Ibrahim took up the gauntlent and showed me in this post how he did it in the manner in which I most wished to do it. Look at his post: &lt;/STRONG&gt;&lt;A href="http://www.sedodream.com/PermaLink,guid,096a2e3f-fcff-4715-8d00-73d8f2491a13.aspx"&gt;http://www.sedodream.com/PermaLink,guid,096a2e3f-fcff-4715-8d00-73d8f2491a13.aspx&lt;/A&gt; &lt;STRONG&gt;Basically he did the same thing I tried and thought has failed but&amp;nbsp;he did it on a property in the target versus the target itself. I'll have to check this out and see if I was crazy and I could do it against the target or if you can't do it on the target but you can a property. I suspect the former. I haven't tried his method yet but have no reason to believe it wouldn't work just as advertised. Thanks Ibrahim.&amp;nbsp; Here is the type of element we had in common but at a different point: hmm.... &lt;/STRONG&gt;&lt;SPAN style="COLOR:#ff0000;"&gt;Condition&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="'%(ChiAuthorizedBuildAgent.identity)'=='$(BuildAgentName)'" &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I tried batching across a target using the item list in the condition of the target and then setting the flag accordingly. Such as:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;DIV style="BORDER-RIGHT:gray 1px solid;PADDING-RIGHT:4px;BORDER-TOP:gray 1px solid;PADDING-LEFT:4px;FONT-SIZE:8pt;PADDING-BOTTOM:4px;MARGIN:20px 0px 10px;OVERFLOW:auto;BORDER-LEFT:gray 1px solid;WIDTH:82.03%;CURSOR:text;MAX-HEIGHT:200px;LINE-HEIGHT:12pt;PADDING-TOP:4px;BORDER-BOTTOM:gray 1px solid;FONT-FAMILY:consolas, 'Courier New', courier, monospace;HEIGHT:90px;BACKGROUND-COLOR:#f4f4f4;"&gt;
&lt;DIV style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;OVERFLOW:visible;WIDTH:85.83%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;HEIGHT:45px;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   1:&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Target&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Name&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="DetermineIfAuthorizedBuildAgent"&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Condition&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="'%(ChiAuthorizedBuildAgent.identity)'=='$(BuildAgentName)'"&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   2:&lt;/SPAN&gt;     &amp;lt;PropertyGroup&amp;gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;ChiIsAnAuthorizedBuildAgent&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;true&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;ChiIsAnAuthorizedBuildAgent&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&amp;lt;/PropertyGroup&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   3:&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Target&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;But the above is not allowed. It will tell you that you can't use an items metadata directly in the condition and must use a transform. Fair enough so I tried the following: 
&lt;BLOCKQUOTE&gt;
&lt;DIV style="BORDER-RIGHT:gray 1px solid;PADDING-RIGHT:4px;BORDER-TOP:gray 1px solid;PADDING-LEFT:4px;FONT-SIZE:8pt;PADDING-BOTTOM:4px;MARGIN:20px 0px 10px;OVERFLOW:auto;BORDER-LEFT:gray 1px solid;WIDTH:97.5%;CURSOR:text;MAX-HEIGHT:200px;LINE-HEIGHT:12pt;PADDING-TOP:4px;BORDER-BOTTOM:gray 1px solid;FONT-FAMILY:consolas, 'Courier New', courier, monospace;HEIGHT:89px;BACKGROUND-COLOR:#f4f4f4;"&gt;
&lt;DIV style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;OVERFLOW:visible;WIDTH:88.8%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;HEIGHT:45px;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   1:&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Target&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Name&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="DetermineIfAuthorizedBuildAgent"&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Condition&lt;/SPAN&gt;="'@(&lt;SPAN style="COLOR:#ff0000;"&gt;ChiAuthorizedBuildAgent&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;-&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt; '%(identity)')'=='$(BuildAgentName)'"&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   2:&lt;/SPAN&gt;   &amp;lt;PropertyGroup&amp;gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;ChiIsAnAuthorizedBuildAgent&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;true&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;ChiIsAnAuthorizedBuildAgent&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&amp;lt;/PropertyGroup&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   3:&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Target&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;That worked but not the results I expected. The result is a flattened list versus batching across the target calling it once for each item ChiAuthorizedBuildAgent and evaluating. So you get the evaluation of 'buildagent1;buildagent2'=='buildagent1' which, of course, evaluates to false.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;I suspect there is a way to do this but every way I came up with really required the condition to be much more dynamic than I could readily make it be. So I decided I'd back up and punt a little bit and while I was out it see if I could eek out a bit more flexibility from the script. In the end here is what I came up with...&lt;/P&gt;
&lt;P&gt;I used the MSBuild.Community.Tasks.RegexMatch task to match against all the items in my ChiAuthorizedBuildAgentList thus output a new list of items that matched my input regex expression. Then I just checked to see if the new list when flattened in a condition was empty. If so nothing matched and the build agent running the script is not an authorized build agent and thus throws an error. The beauty was it let easily build patterns of agent names so that if needed I could have all build agents starting with CI allowed and not have to list them all. Also it let me easily make it case in-sensitive so I didn't have to worry about that either. In the example I provide below I am using a pure match not case sensitive versus some other pattern match but you'll get the point.&lt;/P&gt;
&lt;P&gt;So... if you know of an easier way I can do this without the external task import using an item group I'd love to hear it. I'm sure there is a way and I won't be surprised if there is a better or simpler way I have completely overlooked but I was pleased with the outcome with this. Hope it helps if you need it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;DIV style="BORDER-RIGHT:gray 1px solid;PADDING-RIGHT:4px;BORDER-TOP:gray 1px solid;PADDING-LEFT:4px;FONT-SIZE:8pt;PADDING-BOTTOM:4px;MARGIN:20px 0px 10px;OVERFLOW:auto;BORDER-LEFT:gray 1px solid;WIDTH:97.5%;CURSOR:text;MAX-HEIGHT:200px;LINE-HEIGHT:12pt;PADDING-TOP:4px;BORDER-BOTTOM:gray 1px solid;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BACKGROUND-COLOR:#f4f4f4;"&gt;
&lt;DIV style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   1:&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;?&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;xml&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;version&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="1.0"&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;encoding&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="utf-8"&lt;/SPAN&gt;?&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   2:&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Project&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;xmlns&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="http://schemas.microsoft.com/developer/msbuild/2003"&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   3:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   4:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#008000;"&gt;&amp;lt;!-- Import the regex task --&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   5:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;UsingTask&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;AssemblyFile&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll"&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;TaskName&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="MSBuild.Community.Tasks.RegexMatch"&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   6:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   7:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   8:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#008000;"&gt;&amp;lt;!-- Define the default value for if this is an authorized build agent --&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;   9:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;PropertyGroup&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  10:&lt;/SPAN&gt;     &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;ChiIsAnAuthorizedBuildAgent&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;false&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;ChiIsAnAuthorizedBuildAgent&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  11:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;PropertyGroup&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  12:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  13:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  14:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#008000;"&gt;&amp;lt;!-- Create an item group of the authorized build agents --&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  15:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;ItemGroup&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  16:&lt;/SPAN&gt;     &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;ChiAuthorizedBuildAgent&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Include&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="PLACEHOLDER_FOR_AUTHORIZED_AGENT_1"&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  17:&lt;/SPAN&gt;     &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;ChiAuthorizedBuildAgent&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Include&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="PLACEHOLDER_FOR_AUTHORIZED_AGENT_2"&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  18:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;ItemGroup&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  19:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  20:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;PropertyGroup&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  21:&lt;/SPAN&gt;     &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;BeforeEndToEndIterationDependsOn&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  22:&lt;/SPAN&gt;       $(BeforeEndToEndIterationDependsOn);&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  23:&lt;/SPAN&gt;       GetMatchingBuildAgents;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  24:&lt;/SPAN&gt;       DetermineIfAuthorizedBuildAgent;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  25:&lt;/SPAN&gt;     &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;BeforeEndToEndIterationDependsOn&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  26:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;PropertyGroup&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  27:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  28:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#008000;"&gt;&amp;lt;!-- Use regex expression task with a regex expression (in this instance declaring in the expression that it is not case sensitive) &lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  29:&lt;/SPAN&gt; &lt;SPAN style="COLOR:#008000;"&gt;       to generate a new list of any items in the ChiAuthorizedBuildAgent list that matches the build agent this is running under&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  30:&lt;/SPAN&gt; &lt;SPAN style="COLOR:#008000;"&gt;  --&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  31:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Target&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Name&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="GetMatchingBuildAgents"&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  32:&lt;/SPAN&gt;     &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;RegexMatch&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Input&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="@(ChiAuthorizedBuildAgent)"&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Expression&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="(?i)$(BuildAgentName)"&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  33:&lt;/SPAN&gt;       &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Output&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;ItemName&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="MatchingBuildAgents"&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;TaskParameter&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="Output"&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  34:&lt;/SPAN&gt;     &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;RegexMatch&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  35:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Target&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  36:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  37:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  38:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#008000;"&gt;&amp;lt;!-- If the MatchingBuildAgents list is empty then this is not an authorized build agent --&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  39:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Target&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Name&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="DetermineIfAuthorizedBuildAgent"&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  40:&lt;/SPAN&gt;     &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;PropertyGroup&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Condition&lt;/SPAN&gt;="'@(&lt;SPAN style="COLOR:#ff0000;"&gt;MatchingBuildAgents&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;-&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt; '%(identity)')'!=''" &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  41:&lt;/SPAN&gt;       &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;ChiIsAnAuthorizedBuildAgent&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;true&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;ChiIsAnAuthorizedBuildAgent&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  42:&lt;/SPAN&gt;     &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;PropertyGroup&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;    &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  43:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Target&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  44:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  45:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  46:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#008000;"&gt;&amp;lt;!-- If this is not an authorized build agent then throw an error --&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  47:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Target&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Name&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="BeforeEndToEndIteration"&lt;/SPAN&gt;  &lt;SPAN style="COLOR:#ff0000;"&gt;DependsOnTargets&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="$(BeforeEndToEndIterationDependsOn)"&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  48:&lt;/SPAN&gt;     &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="COLOR:#ff0000;"&gt;Text&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="This build can only be run on one of the following build agents: @(ChiAuthorizedBuildAgent)"&lt;/SPAN&gt;  &lt;SPAN style="COLOR:#ff0000;"&gt;Condition&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;="'$(ChiIsAnAuthorizedBuildAgent)'=='false'"&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  49:&lt;/SPAN&gt;   &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Target&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  50:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  51:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  52:&lt;/SPAN&gt; &lt;SPAN style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#800000;"&gt;Project&lt;/SPAN&gt;&lt;SPAN style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, 'Courier New', courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;SPAN style="COLOR:#606060;"&gt;  53:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;FONT face=cons&gt;&lt;/FONT&gt;&lt;/BLOCKQUOTE&gt;&lt;FONT face=cons size=2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://manicprogrammer.com/cs/aggbug.aspx?PostID=1883" width="1" height="1"&gt;</content><author><name>michaelruminer</name><uri>http://manicprogrammer.com/cs/members/michaelruminer.aspx</uri></author></entry><entry><title>Visual Studio 2008 On Windows Server 2008 with Restart</title><link rel="alternate" type="text/html" href="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/19/visual-studio-2008-on-windows-server-2008-with-restart.aspx" /><id>http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2008/06/19/visual-studio-2008-on-windows-server-2008-with-restart.aspx</id><published>2008-06-19T15:21:44Z</published><updated>2008-06-19T15:21:44Z</updated><content type="html">&lt;p&gt;I went to install an instance of &lt;a title="Link to MSDN download page for Visual Studio 2008 SP1 Beta" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cf99c752-1391-4bc3-babc-86bc0b9e8e5a&amp;amp;DisplayLang=en" target="_blank"&gt;Visual Studio 2008 SP1 Beta&lt;/a&gt; onto a Windows Server 2008 machine today in order to be able to install the &lt;a title="Link to Gert Draper blog in 2008 Database Edition GDR June CTP" href="http://blogs.msdn.com/gertd/archive/2008/06/03/vsts-2008-database-edition-gdr-june-ctp.aspx" target="_blank"&gt;Visual Studio 2008 Database Edition GDR June CTP&lt;/a&gt;. As part of the SP1 Beta install it needed to restart, I assume for the .NET Framework 3.5 SP1 install. When the machine restarted I didn't notice that I didn't seem to have any more SP1 beta installation going and thus assumed it was successful before and just need a reboot to finalize it all. Apparently not. When I then went to install the Data Dude GDR June CTP it complained that pre-requisites were not met and pointed me to the GDR CTP download site that includes the readme.&amp;nbsp; Not exactly sure what pre-requisites I was missing I decided to look at my installed programs. There was the 3.5 SP1 but no Visual Studio 2008 SP1 installed. Apparently, in my case, it did not start where it left off in the SP1 install. &lt;/p&gt; &lt;p&gt;This may have been isolated but you may need to take notice if installing Visual Studio 2008 SP1 Beta on a Windows Server 2008 machine that you may need to manually start the installation again after the reboot to actually get it into place.&lt;/p&gt;&lt;img src="http://manicprogrammer.com/cs/aggbug.aspx?PostID=1882" width="1" height="1"&gt;</content><author><name>michaelruminer</name><uri>http://manicprogrammer.com/cs/members/michaelruminer.aspx</uri></author><category term="Team System 2008 SP1 Beta" scheme="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/tags/Team+System+2008+SP1+Beta/default.aspx" /><category term="Visual Studio 2008 Database Edition GDR June CTP" scheme="http://manicprogrammer.com/cs/blogs/michaelruminer/archive/tags/Visual+Studio+2008+Database+Edition+