<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.conchango.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>James Dawson's Blog</title><link>http://blogs.conchango.com/jamesdawson/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Using Linked Files with Web Application Projects</title><link>http://blogs.conchango.com/jamesdawson/archive/2008/06/03/using-linked-files-with-web-application-projects.aspx</link><pubDate>Tue, 03 Jun 2008 00:51:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:11305</guid><dc:creator>james.dawson</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.conchango.com/jamesdawson/comments/11305.aspx</comments><wfw:commentRss>http://blogs.conchango.com/jamesdawson/commentrss.aspx?PostID=11305</wfw:commentRss><description>&lt;p&gt;A customer recently contacted me saying that they had upgraded to Visual Studio 2008 and had also taken the opportunity to switch from a Web Site Project to a Web Application Project.&amp;nbsp; A while back I'd helped them to centralise some of their configuration so that they only had a single copy of all the configuration sections that were referenced by multiple projects (e.g. the web site, various unit test projects etc.).&lt;/p&gt;  &lt;p&gt;This involved creating separate configuration files for each section and referencing them from the main web/app config using the '&lt;span style="color:red;"&gt;configSource&lt;/span&gt;' attribute, for example:&lt;/p&gt;  &lt;div style="background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt; Reference the shared config file &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;connectionStrings&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;configSource&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;dbConfig.config&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;The above referenced configuration file would something like this:&lt;/p&gt;  &lt;div style="background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;connectionStrings&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;add &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;DB1&lt;/span&gt;"&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;connectionString&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;Data Source=.;Initial Catalog=DB1;Integrated Security=SSPI&lt;/span&gt;"&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;providerName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;System.Data.SqlClient&lt;/span&gt;" &lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span&gt;connectionStrings&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;Due to the '&lt;span style="color:red;"&gt;configSource&lt;/span&gt;' attribute not supporting relative paths, it was necessary to setup pre-Build events to copy the referenced files into the project folder - especially for the Web Site project where a valid web.config is required by the ASPNET compiler.&lt;/p&gt;  &lt;p&gt;After the switch to the Web Application project model the client was wondering whether they needed to change how they were handling these shared configuration files.&amp;nbsp; My initial response was to suggest that they discontinue the pre-build scripts and instead use the 'linked files' feature that was available with web application projects (much like they have been for other types of projects a long time).&lt;/p&gt;  &lt;p&gt;For those of you unfamiliar with this useful feature, here's how you add a linked file via the 'Add Existing Item' option:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.conchango.com/blogs/jamesdawson/WindowsLiveWriter/UsingLinkedFileswithWebApplicationProjec_9E8B/image_4.png"&gt;&lt;img src="http://blogs.conchango.com/blogs/jamesdawson/WindowsLiveWriter/UsingLinkedFileswithWebApplicationProjec_9E8B/image_thumb_1.png" style="border-width:0px;" alt="image" border="0" height="401" width="490"&gt;&lt;/a&gt; &lt;a href="http://blogs.conchango.com/blogs/jamesdawson/WindowsLiveWriter/UsingLinkedFileswithWebApplicationProjec_9E8B/image_10.png"&gt;&lt;img src="http://blogs.conchango.com/blogs/jamesdawson/WindowsLiveWriter/UsingLinkedFileswithWebApplicationProjec_9E8B/image_thumb_4.png" style="border-width:0px;" alt="image" border="0" height="190" width="244"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Such files appear in Solution Explorer as normal project items, albeit with a shortcut icon.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.conchango.com/blogs/jamesdawson/WindowsLiveWriter/UsingLinkedFileswithWebApplicationProjec_9E8B/image_8.png"&gt;&lt;img src="http://blogs.conchango.com/blogs/jamesdawson/WindowsLiveWriter/UsingLinkedFileswithWebApplicationProjec_9E8B/image_thumb_3.png" style="border-width:0px;" alt="image" border="0" height="228" width="296"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;However, after trying it, they reported that those files were missing from the web site which was causing all manner of problems.&lt;/p&gt;  &lt;p&gt;It turns out that when you build the project linked files are not copied into the project folder, which is obviously a problem as it means that the file is not available to the web site at runtime.&amp;nbsp; Your first thought might be to enable the 'Copy Local' option for the linked files, however, all this does is to copy the linked files to the 'bin' folder... not exactly the result we're after.&lt;/p&gt;  &lt;p&gt;Before carrying on, it's worth looking at how the linked items are stored in the actual web application project file, as it will later help us understand why this issue occurs.&lt;/p&gt;  &lt;div style="background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;ItemGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Include&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;..\..\dbConfig.config&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Link&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;dbConfig.config&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Link&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span&gt;ItemGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;From this you can see the main path for the item (the 'Include' attribute) is a relative path to the shared configuration file, whilst the 'Link' attribute tells Visual Studio where the item exists within the project - in this case, the file was added to the root of the project.&lt;/p&gt;  &lt;p&gt;To investigate further I took a look at the '&lt;font face="consolas"&gt;Microsoft.WebApplication.targets&lt;/font&gt;' file that contains the Web Application project build process and typically lives in the '&lt;font face="consolas"&gt;C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\WebApplications&lt;/font&gt;' folder.&amp;nbsp; There I found a target called '&lt;font face="consolas"&gt;_CopyWebApplication&lt;/font&gt;' which only gets executed when the output directory has been overridden (e.g. what TeamBuild does to redirect all build outputs into a single directory):&lt;/p&gt;  &lt;div style="background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Target&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;_CopyWebApplication&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Condition&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;'$(OutDir)' != '$(OutputPath)'&lt;/span&gt;"&lt;span style="color:blue;"&gt; &amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;At the end of this Target there is the following call to the MSBuild Copy task:&lt;/p&gt;  &lt;div style="background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt; Copy content files recursively to _PublishedWebsites\app\ folder &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;SourceFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;@(Content)&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;DestinationFolder&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;$(WebProjectOutputDir)\%(Content.RelativeDir)&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;So when the above Copy task executes it's going to use the relative path to the linked item as part of the destination path, rather than the path within the project (i.e. the 'Link' attribute) - so this explains why the files aren't getting copied:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;div&gt;When building in Visual Studio, nothing special happens to copy the content files (linked or otherwise)&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div&gt;When redirecting the output path, normal Content files are copied fine (their 'Include' attribute does not contain a relative path), but the linked content files will get copied to a folder with the same relative path to the actual output folder, as the linked item has to the project file (e.g. '&lt;font face="Consolas" size="2"&gt;MyOutDir\..\..\dbConfig.config&lt;/font&gt;' instead of '&lt;font face="Consolas" size="2"&gt;MyOutDir\dbConfig.config&lt;/font&gt;')&lt;/div&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Anyway, let's cut to the chase... here is my suggested workaround:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;div&gt;Fix the 'Copy' task to not include linked files&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div&gt;Create another target to handle the copying of linked files using the correct destination path&lt;/div&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;To achieve the first, we'll need to override the built-in '_CopyWebApplication' target by pasting it into our web application's project file and tweaking the 'Copy' task mentioned above:&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; ============================================================&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; _CopyWebApplication&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; MODIFIED: Ignores linked files as part of normal deployment logic.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&amp;nbsp;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; This target will copy the build outputs along with the &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; content files into a _PublishedWebsites folder.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&amp;nbsp;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; This Task is only necessary when $(OutDir) has been redirected&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; to a folder other than ~\bin such as is the case with Team Build.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; ============================================================&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Target&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;_CopyWebApplication&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Condition&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;'$(OutDir)' != '$(OutputPath)'&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt; Log tasks &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Message&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;Copying Web Application Project Files for $(MSBuildProjectName)&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt; Create the _PublishedWebsites\app\bin folder &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;MakeDir&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Directories&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;$(WebProjectOutputDir)\bin&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt; Copy build outputs to _PublishedWebsites\app\bin folder &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;SourceFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;@(IntermediateAssembly)&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;DestinationFolder&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;$(WebProjectOutputDir)\bin&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;SkipUnchangedFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;true&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;SourceFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;@(AddModules)&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;DestinationFolder&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;$(WebProjectOutputDir)\bin&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;SkipUnchangedFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;true&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;SourceFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;$(IntermediateOutputPath)$(_SGenDllName)&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;DestinationFolder&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;$(WebProjectOutputDir)\%(Content.SubFolder)%(Content.RecursiveDir)&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;SkipUnchangedFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;true&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;Condition&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;'$(_SGenDllCreated)'=='true'&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;SourceFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;$(IntermediateOutputPath)$(TargetName).pdb&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;DestinationFolder&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;$(WebProjectOutputDir)\bin&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;SkipUnchangedFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;true&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;Condition&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;'$(_DebugSymbolsProduced)'=='true'&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;SourceFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;@(DocFileItem)&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;DestinationFolder&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;$(WebProjectOutputDir)\bin&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;SkipUnchangedFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;true&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;Condition&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;'$(_DocumentationFileProduced)'=='true'&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;SourceFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;@(IntermediateSatelliteAssembliesWithTargetPath)&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;DestinationFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;@(IntermediateSatelliteAssembliesWithTargetPath-&amp;gt;'$(WebProjectOutputDir)\bin\%(Culture)\$(TargetName).resources.dll')&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:red;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SkipUnchangedFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;true&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;SourceFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;@(ReferenceComWrappersToCopyLocal); @(ResolvedIsolatedComModules); @(_DeploymentLooseManifestFile); @(NativeReferenceFile)&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:red;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DestinationFolder&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;$(WebProjectOutputDir)\bin&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;SkipUnchangedFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;true&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt; copy any referenced assemblies to _PublishedWebsites\app\bin folder &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;SourceFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;@(ReferenceCopyLocalPaths)&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;DestinationFolder&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;$(WebProjectOutputDir)\bin&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;SkipUnchangedFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;true&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt; MODIFICATION HERE: Copy local content files (i.e. non-linked files) recursively to _PublishedWebsites\app\ folder &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Condition&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt; '%(Content.Link)' == '' &lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;SourceFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;%(Content.Identity)&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;DestinationFolder&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;$(WebProjectOutputDir)\%(Content.RelativeDir)&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span&gt;Target&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;For the second, we need to add a new target to our project file and override the default dependencies to have it executed:&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; ============================================================&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; CopyLinkedContentFiles&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&amp;nbsp;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; A new target to copy any linked content files into the &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; web application output folder.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&amp;nbsp;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; NOTE: This is necessary even when '$(OutDir)' has not been redirected.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; ============================================================&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:green;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Target&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;CopyLinkedContentFiles&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt; Remove any old copies of the files &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Delete&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Condition&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt; '%(Content.Link)' != '' AND Exists('$(WebProjectOutputDir)\%(Content.Link)') &lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:red;"&gt;Files&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;$(WebProjectOutputDir)\%(Content.Link)&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt; Copy linked content files recursively to the project folder &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Condition&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt; '%(Content.Link)' != '' &lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;SourceFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;%(Content.Identity)&lt;/span&gt;"&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;span style="color:red;"&gt;DestinationFiles&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;$(WebProjectOutputDir)\%(Content.Link)&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span&gt;Target&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt; Override the default target dependencies to &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt; &lt;/span&gt;&lt;span style="color:green;"&gt;include the new &lt;/span&gt;&lt;span style="color:green;"&gt;_CopyLinkedContentFiles target. &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;PropertyGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;PrepareForRunDependsOn&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(PrepareForRunDependsOn);&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _CopyWebApplication;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CopyLinkedContentFiles;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _BuiltWebOutputGroupOutput&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span&gt;PrepareForRunDependsOn&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0px;background:white none repeat scroll 0% 50%;font-size:10pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;color:black;font-family:consolas;" align="left"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span&gt;PropertyGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;With these changes, whenever you build the web project any linked content files will be copied into the web application's folder structure&amp;nbsp; - whether you override the default output directory or not.&lt;/p&gt;  &lt;p&gt;If anyone is interested I've attached a sample solution that demonstrates the above workaround (as well as an unmodified project file so you can see the issue).&lt;/p&gt;  &lt;p&gt;Part of me wonders whether this is a bug at all, or whether it is in fact just an unexpected feature that was never supposed to be supported... I've raised a bug on &lt;a href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=348886" target="_blank"&gt;Connect&lt;/a&gt;, so I guess I'll find out in due course.&lt;/p&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=11305" width="1" height="1"&gt;</description><enclosure url="http://blogs.conchango.com/jamesdawson/attachment/11305.ashx" length="12047" type="application/zip" /><category domain="http://blogs.conchango.com/jamesdawson/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.conchango.com/jamesdawson/archive/tags/MSBuild/default.aspx">MSBuild</category></item><item><title>TeamBuild Plug-in for CruiseControl.NET now on CodePlex</title><link>http://blogs.conchango.com/jamesdawson/archive/2007/11/24/TeamBuild-Plug_2D00_in-for-CruiseControl.NET-now-on-CodePlex.aspx</link><pubDate>Sat, 24 Nov 2007 22:27:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:9183</guid><dc:creator>james.dawson</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.conchango.com/jamesdawson/comments/9183.aspx</comments><wfw:commentRss>http://blogs.conchango.com/jamesdawson/commentrss.aspx?PostID=9183</wfw:commentRss><description>&lt;p&gt;Back in May this year I blogged about a CruiseControl.NET plug-in that I had written to allow CCNet to trigger a TFS Build - I had a few comments at the time, but recently I&amp;#39;ve had a flurry of comments &amp;amp; emails (well, a comparative flurry for my blog anyway!), many with the recurring theme of requesting the source.&amp;nbsp; Having been on a project full time for most of this year, I&amp;#39;ve found very little time to revisit this - other than a couple of minor private fixes for people who emailed me.&amp;nbsp; I&amp;#39;ve recently begun to roll-off this long term project so have finally found some time for this.&lt;/p&gt;&lt;p&gt;I&amp;#39;ve setup a new CodePlex project (called&amp;nbsp;&lt;a href="http://www.codeplex.com/CcNetTeamBuildTask" title="http://www.codeplex.com/CcNetTeamBuildTask" target="_blank"&gt;CcNetTeamBuildTask&lt;/a&gt;) to host the source code and have published a release of the plug-in.&amp;nbsp; The following is a list of the main changes&amp;nbsp; compared to the version I posted back in May.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Compiled against the latest version of CruiseControl.NET - &lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_ChangeSetList_ctl03_CommentLabel"&gt;v1.3.0.2918&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_ChangeSetList_ctl03_CommentLabel"&gt;Fixed a bug that manifested itself when dealing with Team Project names that contained spaces&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_ChangeSetList_ctl03_CommentLabel"&gt;Fixed a bug with publishing the MSTest code coverage results, that occurred when specifying your build server using an FQDN (if you specify your build server by IP address, then this functionality will probably still not work for you)&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_ChangeSetList_ctl03_CommentLabel"&gt;Removed the task&amp;#39;s queuing logic as CCNet now provides this out-of-the-box&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_ChangeSetList_ctl03_CommentLabel"&gt;New configuration property &amp;#39;pathToTfExe&amp;#39; to support scenarios where Visual Studio is not installed in the default location&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_ChangeSetList_ctl03_CommentLabel"&gt;New configuration property &amp;#39;useXmlLogger&amp;#39; to more easily switch between text or XML based MSBuild logging&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_ChangeSetList_ctl03_CommentLabel"&gt;Currently,
the XML log file can only be automatically published by the task if you
customise your TeamBuild to copy the &amp;#39;msbuild-results.xml&amp;#39; file to the
Drops Location&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_ChangeSetList_ctl03_CommentLabel"&gt;The text log file (BuildLog.txt) will always be automatically published to the CCNet Dashboard if this option is false&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_ChangeSetList_ctl03_CommentLabel"&gt;A general tidy-up of the code&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;With the release of TFS 2008, I&amp;#39;m unsure whether this plug-in will be as valuable given the new features that Microsoft has added to TFS - but feel free to drop me a line if you have any ideas or would like to join the project.&lt;/p&gt;Cheers, James.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=9183" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/jamesdawson/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://blogs.conchango.com/jamesdawson/archive/tags/Continuous+Integration/default.aspx">Continuous Integration</category></item><item><title>Configuring DCOM Security</title><link>http://blogs.conchango.com/jamesdawson/archive/2007/09/06/Configuring-DCOM-Security.aspx</link><pubDate>Thu, 06 Sep 2007 21:52:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:8354</guid><dc:creator>james.dawson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.conchango.com/jamesdawson/comments/8354.aspx</comments><wfw:commentRss>http://blogs.conchango.com/jamesdawson/commentrss.aspx?PostID=8354</wfw:commentRss><description>&lt;p&gt;This post started out as a comment on one of &lt;a href="http://blogs.conchango.com/jamiethomson/archive/2007/09/04/SSIS_3A00_-Problems-executing-out_2D00_of_2D00_process.aspx"&gt;Jamie&amp;#39;s recent posts&lt;/a&gt;, however, I realised that the explanation would be easier to follow with screenshots... so here we go.&lt;br /&gt;&lt;br /&gt;To paraphrase, Jamie&amp;#39;s issue was that whilst trying to use an SSIS package he was getting a DCOM access denied error (full details here) - this had worked in previous environments, but not once it got to Production.&amp;nbsp; The eventual solution that got everything working was to make the account running the package a local administrator (as it was in other environments) and reboot the server.&lt;br /&gt;&lt;br /&gt;Whilst this obviously got things working, what I&amp;#39;d like to illustrate here is a more secure way of overcoming this type of issue - as a platform guy, developer code running with full admin rights makes me twitchy! &lt;img src="http://blogs.conchango.com/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DCOM security is managed using the &amp;#39;Component Services&amp;#39; MMC snap-in, a shortcut to which is &amp;#39;Start -&amp;gt; Run -&amp;gt; DCOMCNFG&amp;#39;&lt;/p&gt;&lt;p&gt;&lt;img /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.conchango.com/photos/conchango_bloggers/images/8355/original.aspx" target="_blank"&gt;&lt;img border="0" src="http://blogs.conchango.com/photos/conchango_bloggers/images/8355/original.aspx" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The next step is locate the component that needs to have its security tweaked.&amp;nbsp; Jamie&amp;#39;s post shows how to use the CLSID from the error message to locate the registration information for the component in the Registry.&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.conchango.com/photos/conchango_bloggers/images/8357/original.aspx" target="_blank"&gt;&lt;img border="0" src="http://blogs.conchango.com/photos/conchango_bloggers/images/8357/original.aspx" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The value of the &amp;#39;&amp;#39;AppID&amp;#39; key is the surefire way of locating the component in DCOMCNFG, however, this is only visible from the component&amp;#39;s property page - so ideally you want to find&lt;br /&gt;the component by name.&amp;nbsp; However, the names in DCOMCNFG do not necessarily exactly match those in the registry (typically it&amp;#39;s a substring).&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.conchango.com/photos/conchango_bloggers/images/8358/original.aspx" target="_blank"&gt;&lt;img border="0" src="http://blogs.conchango.com/photos/conchango_bloggers/images/8358/original.aspx" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Armed with the AppID and some ideas about the component name, return to DCOMCNFG and start hunting:&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.conchango.com/photos/conchango_bloggers/images/8359/original.aspx" target="_blank"&gt;&lt;img border="0" src="http://blogs.conchango.com/photos/conchango_bloggers/images/8359/original.aspx" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Once you&amp;#39;ve found a candiate, open its properties and verify the AppID&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.conchango.com/photos/conchango_bloggers/images/8360/original.aspx" target="_blank"&gt;&lt;img border="0" src="http://blogs.conchango.com/photos/conchango_bloggers/images/8360/original.aspx" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you&amp;#39;ve found it, select the &amp;#39;Security&amp;#39; tab, select &amp;#39;Customize&amp;#39; and &amp;#39;Edit..&amp;#39; under &amp;#39;Launch and Activation Permissions&amp;#39;, and grant the required user the rights requested in the original error message.&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.conchango.com/photos/conchango_bloggers/picture8361.aspx" target="_blank"&gt;&lt;/a&gt;&lt;a href="http://blogs.conchango.com/photos/conchango_bloggers/images/8361/original.aspx" target="_blank"&gt;&lt;img border="0" src="http://blogs.conchango.com/photos/conchango_bloggers/images/8361/original.aspx" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Now you should be good to go. (complete with that warm and fuzzy feeling that you get from knowing that you haven&amp;#39;t unduly compromised server security)&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=8354" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/jamesdawson/archive/tags/Security/default.aspx">Security</category></item><item><title>TeamBuild Plug-in for CruiseControl.NET</title><link>http://blogs.conchango.com/jamesdawson/archive/2007/05/24/TeamBuild-Plug_2D00_in-for-CruiseControl.NET.aspx</link><pubDate>Wed, 23 May 2007 23:46:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:7046</guid><dc:creator>james.dawson</dc:creator><slash:comments>13</slash:comments><comments>http://blogs.conchango.com/jamesdawson/comments/7046.aspx</comments><wfw:commentRss>http://blogs.conchango.com/jamesdawson/commentrss.aspx?PostID=7046</wfw:commentRss><description>&lt;p&gt;I&amp;#39;ve been meaning to write this post for a couple of months now as a follow-up to a session that&amp;nbsp;&lt;a href="http://blogs.conchango.com/colinbird"&gt;Colin&lt;/a&gt; and I gave at the &lt;a href="http://msdn2.microsoft.com/en-gb/architecture/aa973290.aspx"&gt;Microsoft Architect Insight Conference&lt;/a&gt; back in March, but just haven&amp;#39;t found&amp;nbsp;the time... at least, that&amp;#39;s my excuse - anyway cutting to the chase!&lt;/p&gt;&lt;p&gt;Since the release of Team Foundation Server (TFS)&amp;nbsp;there have been&amp;nbsp;several Continuous Integration add-ons produced by various folks:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/automation"&gt;Automaton&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://notgartner.wordpress.com/2006/09/18/getting-started-with-tfs-integrator/"&gt;TFSIntegrator&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/khushboo/archive/2006/01/04/509122.aspx"&gt;CI Sample&lt;/a&gt;&amp;nbsp;- &lt;a href="http://blogs.vertigosoftware.com/teamsystem/archive/2006/07/14/3075.aspx"&gt;(also&amp;nbsp;its &amp;#39;Vertigo remix&amp;#39;)&lt;/a&gt; &lt;/li&gt;&lt;li&gt;... and I dare say many more (not to mention the one that Microsoft are slated to ship with the Orcas release of VSTS)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;We&amp;#39;ve&amp;nbsp;used most&amp;nbsp;of the above, but despite however well they worked&amp;nbsp;have found myself wanting some feature or other that was available in CCNet (actually it more about being badgered by developers about the missing features!).&amp;nbsp; Whilst some of the above could have been extended to support these features, I couldn&amp;#39;t help but feel that this would have been reinventing the wheel - hence the idea to extend CCNet.&lt;/p&gt;&lt;p&gt;By the time I started this Vertigo had already released the &lt;a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=TFSCCNetPlugin"&gt;VSTS plug-in for CCNet&lt;/a&gt; (which is a CCNet source control plug-in), so it was just a matter of producing a&amp;nbsp;CCNet task plug-in that was able to trigger a Team Build.&amp;nbsp; The guts of calling the Team Build web service I based on&amp;nbsp;the original CI Sample, but I was also keen&amp;nbsp;to provide a mechanism for customising the behaviour of a Team Build in a more dynamic way than just creating another build type and changing the MSBuild properties.&lt;/p&gt;&lt;p&gt;Team Build provides a mechanism for passing custom MSBuild properties into it via a source controlled file called TFSBuild.rsp.&amp;nbsp; This file consists of 1 or more lines each containing a valid MSBuild commandline switch (e.g. &lt;em&gt;/p:PropName=value&lt;/em&gt;, would set the property &amp;#39;PropName&amp;#39; to be &amp;#39;value&amp;#39;).&amp;nbsp; With that in mind, I developed the plug-in to allow these switches to be specified in the CCNet server configuration file (on a per CCNet project basis) and have it update the&amp;nbsp;&amp;#39;.rsp&amp;#39; (in source control) before calling the build web service.&lt;/p&gt;&lt;p&gt;I&amp;#39;ll hold off diving into any more detail at this point, but if there is interest out there then I can do a follow-up.&lt;/p&gt;&lt;p&gt;Attached to this post should be the plug-in assembly which you need to copy into your CCNet &amp;#39;server&amp;#39; directory (along with the VSTS plug-in referred to above), and below is a configuration excerpt that shows how to configure the &amp;#39;teambuild&amp;#39; task in CCNet.&lt;/p&gt;&lt;div style="font-size:10pt;background:white;color:black;font-family:Consolas;"&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;project&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;TeamBuild_CI&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; ...&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tasks&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;teambuild&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tfsServerUri&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;http://MyTfsServer:8080&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tfsServerUri&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;teamBuildServer&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;MyBuildServer&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;teamBuildServer&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;teamProject&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;MyTeamProject&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;teamProject&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;teamBuildType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;MyTeamBuildType&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;teamBuildType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;workspace&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;MyBuildServer_MyTeamProject_MyTeamBuildType&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;workspace&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;dropsLocation&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;MyDropsArea\MyTeamProject&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;dropsLocation&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;msBuildParameters&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MsBuildParameter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;/v:d&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MsBuildParameter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MsBuildParameter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;/logger:ThoughtWorks.CruiseControl.MsBuild.XmlLogger,ThoughtWorks.CruiseControl.MsBuild.dll;msbuild-output.xml&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MsBuildParameter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MsBuildParameter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;/p:SkipInitializeWorkspace=true&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MsBuildParameter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MsBuildParameter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;/p:SkipGet=true&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MsBuildParameter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MsBuildParameter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;/p:SkipClean=true&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MsBuildParameter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MsBuildParameter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;/p:SkipDropBuild=true&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MsBuildParameter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;msBuildParameters&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;useMsTest&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;useMsTest&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;useMsTestCodeCoverage&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;useMsTestCodeCoverage&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;teambuild&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tasks&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;publishers&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;merge&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;files&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;file&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;C:\MyTeamBuildWorkspacePath\MyTeamProject\MyTeamBuildType\BuildType\msbuild-output.xml&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;file&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;files&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;merge&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xmllogger&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;logDir&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;.\Web\Logs&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;logDir&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xmllogger&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;publishers&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; ...&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;project&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Let me know if you find it useful, interesting or a waste of your time! (actually, maybe save your bandwidth in the case of the latter).&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=7046" width="1" height="1"&gt;</description><enclosure url="http://blogs.conchango.com/jamesdawson/attachment/7046.ashx" length="7180" type="application/x-zip-compressed" /><category domain="http://blogs.conchango.com/jamesdawson/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category></item><item><title>COM Error When Configuring BizTalk 2006 BAM in a Multi-Server Environment</title><link>http://blogs.conchango.com/jamesdawson/archive/2006/11/16/Configuring-BizTalk-2006-BAM-in-a-Multi_2D00_Server-Environment.aspx</link><pubDate>Thu, 16 Nov 2006 09:22:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:5137</guid><dc:creator>james.dawson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.conchango.com/jamesdawson/comments/5137.aspx</comments><wfw:commentRss>http://blogs.conchango.com/jamesdawson/commentrss.aspx?PostID=5137</wfw:commentRss><description>&lt;p&gt;Whilst trying to finalise some unattended server build scripts for deploying BizTalk 2006 into a multi-server environment I hit the following error when trying to configure the &amp;#39;BAM Tools&amp;#39;:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.conchango.com/photos/conchango_bloggers/images/5136/original.aspx" target="_blank"&gt;&lt;img border="0" height="178" src="http://blogs.conchango.com/photos/conchango_bloggers/images/5136/original.aspx" width="608" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;This despite the fact that the SQL Server Management Tools had in fact already been installed.&lt;/p&gt;&lt;p&gt;A bit of Googling revealed other &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=728870&amp;amp;SiteID=1"&gt;people&lt;/a&gt; who had seen the same issue, but with no solution.&amp;nbsp; So I cast my net a little wider and found &lt;a href="http://www.sqldts.com/default.aspx?286"&gt;this posting&lt;/a&gt; indicating an issue with DTS.CustomTask that was resolved in SQL 2000 SP2.&amp;nbsp; I had already installed SP4 (a pre-req for running BizTalk 2006 on SQL 2000), but this got me wondering whether it had installed properly.&lt;/p&gt;&lt;p&gt;We were using unattended installs of SQL Server that had previously been created, and thus far, had assumed that all was well with them - it turned out that there was a problem with the&amp;nbsp;unattended SP4 install when run against a partial install of SQL Server (i.e. a Management Tools only install).&lt;/p&gt;&lt;p&gt;One manual re-install of SP4 later and the error vanished.... happy days.&lt;/p&gt;&lt;p&gt;Finally,&amp;nbsp;all that was left to do was to record a new &amp;#39;setup.iss&amp;#39; file for SP4 against the partial SQL install and we were good to go.... not before time!&lt;/p&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=5137" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/jamesdawson/archive/tags/BizTalk/default.aspx">BizTalk</category></item><item><title>Team Explorer &amp; IE Problems</title><link>http://blogs.conchango.com/jamesdawson/archive/2006/07/25/Team-Explorer-_2600_-IE-Problems.aspx</link><pubDate>Tue, 25 Jul 2006 00:04:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:4250</guid><dc:creator>james.dawson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.conchango.com/jamesdawson/comments/4250.aspx</comments><wfw:commentRss>http://blogs.conchango.com/jamesdawson/commentrss.aspx?PostID=4250</wfw:commentRss><description>&lt;p&gt;I&amp;#39;ve spent most of this evening trying to figure out why my Team Explorer was, all of a sudden, refusing to connect to the company TFS server - whilst the solution is not terribly exciting, this post serves to link the TFS symptom to the underlying problem.&lt;/p&gt;&lt;p&gt;Anyway, as I was saying, my attempts to add or connect to an existing Team Project resulted in a somewhat unhelpful &amp;quot;Team Foundation Error&amp;quot; message. Several reboots,&amp;nbsp;uninstall/reinstall of Team Explorer later I was no better off, and Google wasn&amp;#39;t much help either.&lt;/p&gt;&lt;p&gt;Earlier in the day I had also noticed that I was getting an error message when trying to use the &amp;#39;Find&amp;#39; functionality in IE... this caused a rather odd-looking &amp;#39;Error 49: Interface not registered&amp;#39; message.&lt;/p&gt;&lt;p&gt;On the premise that the problems might be related I decided to have a dig around... which&amp;nbsp;soon revealed a solution courtesy of the veritable treasure trove that is &lt;a href="http://www.jsifaq.com/"&gt;www.jsifaq.com&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;As the error message suggests, some of the&amp;nbsp;IE components had become unregistered and the JSIFaq page (&lt;a href="http://www.jsifaq.com/SF/Tips/Tip.aspx?id=9681"&gt;found here&lt;/a&gt;) listed the ones to re-register:&lt;/p&gt;&lt;blockquote dir="ltr" style="margin-right:0px;" dir="ltr" style="margin-right:0px;"&gt;&lt;p&gt;&lt;font face="Courier New" size="2"&gt;regsvr32 /s urlmon.dll&lt;br /&gt;regsvr32 /s actxprxy.dll &lt;br /&gt;regsvr32 /s shdocvw.dll &lt;br /&gt;regsvr32 /s mshtml.dll &lt;br /&gt;regsvr32 /s browseui.dll &lt;br /&gt;regsvr32 /s jscript.dll &lt;br /&gt;regsvr32 /s vbscript.dll&amp;nbsp; &lt;br /&gt;regsvr32 /s oleaut32.dll&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;After doing this, Team Explorer worked fine.... happy days - now to get back what I had intended to do this evening!&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;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=4250" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/jamesdawson/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category></item><item><title>Running VSTS4DB as a Non-Admin User</title><link>http://blogs.conchango.com/jamesdawson/archive/2006/06/19/Running-VSTS4DB-as-a-Non_2D00_Admin-User.aspx</link><pubDate>Mon, 19 Jun 2006 15:08:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:4095</guid><dc:creator>james.dawson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.conchango.com/jamesdawson/comments/4095.aspx</comments><wfw:commentRss>http://blogs.conchango.com/jamesdawson/commentrss.aspx?PostID=4095</wfw:commentRss><description>&lt;p&gt;I&amp;#39;d heard about this forthcoming edition of Visual Studio 2005 Team System (Team Edition for Database Professionals) a while back but was reminded by &lt;a href="http://blogs.conchango.com/jamiethomson/archive/2006/06/13/4072.aspx"&gt;Jamie&amp;#39;s recent post &lt;/a&gt;to actually download the CTP and give it a whirl.&lt;/p&gt;&lt;p&gt;After a painless installation, I cranked-up VSTS, created a new &amp;#39;SQL Server 2000&amp;#39; project and clicked on the &amp;#39;Import Database Schema&amp;#39; with much anticipation.... only to be met with a&amp;nbsp;rather abrupt and anti-climatic &amp;#39;object reference not set&amp;#39; error:&lt;/p&gt;&lt;p&gt;&lt;img border="0" height="126" src="https://blogs.conchango.com/photos/conchango_bloggers/images/4096/original.aspx" width="355" /&gt;&lt;/p&gt;&lt;p&gt;After an unsuccessful&amp;nbsp;bit of Googling, and an&amp;nbsp;uninstall/reboot/install cycle I eventually discovered that the import functionality worked fine when running with&amp;nbsp;local Administrator rights, but not when using my everyday unprivileged account - irrespective of any other SQL-related permissions.&lt;/p&gt;&lt;p&gt;So now I&amp;#39;ll make sure that I run the ever useful&amp;nbsp;&amp;#39;&lt;a href="http://blogs.msdn.com/aaron_margosis/archive/2004/07/24/193721.aspx"&gt;MakeMeAdmin&lt;/a&gt;&amp;#39; before doing this sort of thing again.&lt;/p&gt;&lt;p&gt;Incidentally, running VS2005 without admin rights is officially supported (&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/vs05security.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/vs05security.asp&lt;/a&gt;), and to-date has worked well for me - a definite improvement on VS.NET 2003 in this respect.&lt;/p&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=4095" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/jamesdawson/archive/tags/Team+System/default.aspx">Team System</category></item><item><title>Update to TFS Merge Issue</title><link>http://blogs.conchango.com/jamesdawson/archive/2006/01/25/Update-to-TFS-Merge-Issue.aspx</link><pubDate>Wed, 25 Jan 2006 00:43:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:2710</guid><dc:creator>james.dawson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.conchango.com/jamesdawson/comments/2710.aspx</comments><wfw:commentRss>http://blogs.conchango.com/jamesdawson/commentrss.aspx?PostID=2710</wfw:commentRss><description>&lt;p&gt;So after receiving an e-mail from someone asking whether I&amp;#39;d heard anything more regarding the TFS Merge issue I &lt;a href="http://blogs.conchango.com/jamesdawson/archive/2005/12/20/2518.aspx"&gt;blogged &lt;/a&gt;about a while back, I checked a&amp;nbsp;post on the &lt;a href="http://blogs.msdn.com/vstsue/articles/504417.aspx"&gt;VSTS&amp;nbsp;User Education blog&lt;/a&gt; &amp;nbsp;that I had previously left a comment on regarding this issue.&lt;/p&gt;&lt;p&gt;There hadn&amp;#39;t been any follow-up, but upon taking a look at the referrals associated with my original post I noticed some originating from forums.microsoft.com.&amp;nbsp; These referrals took me to this &lt;a href="http://forums.microsoft.com/msdn/showpost.aspx?postid=191719&amp;amp;siteid=1"&gt;thread&lt;/a&gt; that talks about this issue (and included a&amp;nbsp;link to my post, hence the referral).&lt;/p&gt;&lt;p&gt;The long and short of it, is that this appears to be a known&amp;nbsp;issue the &amp;#39;debit/credit logic within Merge&amp;#39; , which based on the last message in the thread appears to have been fixed.... something to look out for in the forthcoming&amp;nbsp;RC.&lt;/p&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=2710" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/jamesdawson/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category></item><item><title>Team Foundation Server - Merging Branches Issue?</title><link>http://blogs.conchango.com/jamesdawson/archive/2005/12/20/2518.aspx</link><pubDate>Tue, 20 Dec 2005 20:18:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:2518</guid><dc:creator>james.dawson</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.conchango.com/jamesdawson/comments/2518.aspx</comments><wfw:commentRss>http://blogs.conchango.com/jamesdawson/commentrss.aspx?PostID=2518</wfw:commentRss><description>&lt;P&gt;So last week I had my first official introduction to Visual Studio Team System (VSTS) and Team Foundation Server (TFS) when I attended a 'VSTS Readiness Workshop' that was co-led by Joel. &lt;/P&gt;
&lt;P&gt;By Day 2 we'd started looking at the new source control system that ships with TFS and I was keen to see how the new/improved features (database back-end, concurrent check-out, transactional check-ins aka changesets&amp;nbsp; etc.) might affect our approach to versioning and release management - in particular I was interested to see how much the branch/merge functionality had been improved. &lt;/P&gt;
&lt;P&gt;One of the main differences is that creating a branch does not immediately result in a duplicates of each affected object (and thus double the storage requirements) - initially the branch contains links to the files, and only when a file is actually changed in the branch does a new version get created. With this in mind, I set about simulating a typical scenario to put the merge/branch functionality through its paces - and got some 'interesting' results. &lt;/P&gt;
&lt;P&gt;The scenario (and resulting issue) is summarised below:&lt;/P&gt;
&lt;P&gt;
&lt;TABLE id=Table1 cellSpacing=0 cellPadding=10&gt;

&lt;TR&gt;
&lt;TD align=left&gt;&lt;STRONG&gt;1&lt;/STRONG&gt; ) 'Sprint 1' begins, and development continues for 4 weeks&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=left&gt;&lt;STRONG&gt;2&lt;/STRONG&gt; ) At the end of 'Sprint 1', a new branch is created called 'Sprint 2' &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=left&gt;&lt;STRONG&gt;3&lt;/STRONG&gt;) Consider that 'Sprint 1' functionality is now in production In both branches the file Class1.cs contains the following code:&amp;nbsp; 
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;class&lt;/SPAN&gt; Class1 &lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/SPAN&gt;&amp;nbsp;{&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; Class1()&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;//&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/SPAN&gt;&amp;nbsp;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;int&lt;/SPAN&gt; SomeMethod1(&lt;SPAN&gt;int&lt;/SPAN&gt; x, &lt;SPAN&gt;int&lt;/SPAN&gt; y)&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;return&lt;/SPAN&gt; x + y;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/SPAN&gt;&amp;nbsp;}&lt;BR&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=left&gt;&lt;STRONG&gt;4&lt;/STRONG&gt;) All 2nd Sprint development continues in the 'Sprint 2' branch&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=left&gt;&lt;STRONG&gt;5&lt;/STRONG&gt;) During the first week of 'Sprint 2' additional methods are added to Class1 as part of functionality on the sprint backlog. The Class1.cs file now looks like this:&amp;nbsp; 
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;class&lt;/SPAN&gt; Class1 &lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/SPAN&gt;&amp;nbsp;{&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; Class1()&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;//&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/SPAN&gt;&amp;nbsp;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;int&lt;/SPAN&gt; SomeMethod1(&lt;SPAN&gt;int&lt;/SPAN&gt; x, &lt;SPAN&gt;int&lt;/SPAN&gt; y)&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;return&lt;/SPAN&gt; x + y;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/SPAN&gt;&amp;nbsp;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;int&lt;/SPAN&gt; SomeMethod2(&lt;SPAN&gt;int&lt;/SPAN&gt; x, &lt;SPAN&gt;int&lt;/SPAN&gt; y)&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;return&lt;/SPAN&gt; (2 * x) - y;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;17&lt;/SPAN&gt;&amp;nbsp;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;18&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;int&lt;/SPAN&gt; SomeMethod3(&lt;SPAN&gt;int&lt;/SPAN&gt; x, &lt;SPAN&gt;int&lt;/SPAN&gt; y, &lt;SPAN&gt;int&lt;/SPAN&gt; z)&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;19&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;return&lt;/SPAN&gt; (x ^ y) / z;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;21&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;22&lt;/SPAN&gt;&amp;nbsp;} &lt;BR&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=left&gt;&lt;STRONG&gt;6&lt;/STRONG&gt;) Also during week 1 a production bug comes in, and is fixed in the 'Sprint 1' branch. The Class1.cs in the 'Sprint 1' branch now looks like this:&amp;nbsp; 
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;class&lt;/SPAN&gt; Class1 &lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/SPAN&gt;&amp;nbsp;{&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; Class1()&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;//&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/SPAN&gt;&amp;nbsp;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;int&lt;/SPAN&gt; SomeMethod1(&lt;SPAN&gt;int&lt;/SPAN&gt; x, &lt;SPAN&gt;int&lt;/SPAN&gt; y)&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;x + (y - 1);&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/SPAN&gt;&amp;nbsp;}&lt;BR&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=left&gt;&lt;STRONG&gt;7&lt;/STRONG&gt;) In week 2 the bug fix is signed-off and needs to be applied to the 'Sprint 2' branch - this is done via a merge operation. &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=left&gt;
&lt;P&gt;&lt;STRONG&gt;8&lt;/STRONG&gt;) The merge is performed from 'Sprint 1' to 'Sprint 2', and happens as you'd expect, with a conflict being detected and being given the opportunity to perform a manual resolution to combine the bug fix from 'Sprint 1' with the new methods in 'Sprint 2', to give a Class1.cs in 'Sprint 2' that looks like this:&amp;nbsp; 
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;class&lt;/SPAN&gt; Class1 &lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/SPAN&gt;&amp;nbsp;{&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; Class1()&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;//&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/SPAN&gt;&amp;nbsp;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;int&lt;/SPAN&gt; SomeMethod1(&lt;SPAN&gt;int&lt;/SPAN&gt; x, &lt;SPAN&gt;int&lt;/SPAN&gt; y)&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;return&lt;/SPAN&gt; x + (y - 1);&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/SPAN&gt;&amp;nbsp;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;int&lt;/SPAN&gt; SomeMethod2(&lt;SPAN&gt;int&lt;/SPAN&gt; x, &lt;SPAN&gt;int&lt;/SPAN&gt; y)&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;return&lt;/SPAN&gt; (2 * x) - y;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;17&lt;/SPAN&gt;&amp;nbsp;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;18&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;int&lt;/SPAN&gt; SomeMethod3(&lt;SPAN&gt;int&lt;/SPAN&gt; x, &lt;SPAN&gt;int&lt;/SPAN&gt; y, &lt;SPAN&gt;int&lt;/SPAN&gt; z)&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;19&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;return&lt;/SPAN&gt; (x ^ y) / z;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;21&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;22&lt;/SPAN&gt;&amp;nbsp;}&lt;BR&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=left&gt;&lt;STRONG&gt;9&lt;/STRONG&gt;) In week 3 another production bug is discovered and fixed in the 'Sprint 1' branch, and is fixed as shown below:&amp;nbsp; 
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;class&lt;/SPAN&gt; Class1 &lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/SPAN&gt;&amp;nbsp;{&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; Class1()&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;//&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/SPAN&gt;&amp;nbsp;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;int&lt;/SPAN&gt; SomeMethod1(&lt;SPAN&gt;int&lt;/SPAN&gt; x, &lt;SPAN&gt;int&lt;/SPAN&gt; y)&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;return&lt;/SPAN&gt; (2 * x) + (y - 1);&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/SPAN&gt;&amp;nbsp;}&lt;BR&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=left&gt;&lt;STRONG&gt;10&lt;/STRONG&gt;) This bug fix is signed-off and then needs to be applied to the 'Sprint 2' branch&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=left&gt;&lt;STRONG&gt;11&lt;/STRONG&gt; ) The same merge operation as in step 9 is performed, however, this time no conflict is detected and the merge completes automatically without any prompts.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=left&gt;
&lt;P&gt;&lt;STRONG&gt;12&lt;/STRONG&gt;) The merged version of Class1.cs in 'Sprint 2' can be checked-in without intervention. Unfortunately, upon inspection of the resulting Class1.cs in 'Sprint 2' we can see the merge has not quite happened as we'd intended:&amp;nbsp; 
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;class&lt;/SPAN&gt; Class1 &lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/SPAN&gt;&amp;nbsp;{&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; Class1()&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;//&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/SPAN&gt;&amp;nbsp;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;int&lt;/SPAN&gt; SomeMethod1(&lt;SPAN&gt;int&lt;/SPAN&gt; x, &lt;SPAN&gt;int&lt;/SPAN&gt; y)&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;return&lt;/SPAN&gt; (2 * x) + (y - 1);&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/SPAN&gt;&amp;nbsp;}&lt;br&gt; 
&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;
&lt;P&gt;As you can see above, Class1.cs in 'Sprint 2' has been overwritten by the version in 'Sprint 1' and the all the new methods have been lost. It seems that TFS assumes that a merge operation should result in identical files, which of course is not necessarily the case.&lt;/P&gt;
&lt;P&gt;I'd be interested to hear from anyone who cannot recreate the above issue - I also plan to re-test this scenario using the December CTP version of TFS that was recently released to see if it behaves differently.&lt;/P&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=2518" width="1" height="1"&gt;</description></item><item><title>Word Documents or Wiki?</title><link>http://blogs.conchango.com/jamesdawson/archive/2005/08/09/1980.aspx</link><pubDate>Tue, 09 Aug 2005 22:10:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:1980</guid><dc:creator>james.dawson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.conchango.com/jamesdawson/comments/1980.aspx</comments><wfw:commentRss>http://blogs.conchango.com/jamesdawson/commentrss.aspx?PostID=1980</wfw:commentRss><description>&lt;P&gt;I've talked about why I like Wiki as a documentation medium &lt;a href="http://blogs.conchango.com/jamesdawson/archive/2005/04/14/1289.aspx"&gt;before&lt;/A&gt;, however, today I had a discussion with one of my colleagues where we were considering the merits of such an approach versus the traditional word processing document - incidentally, in this case 'discussion' is &lt;U&gt;not&lt;/U&gt; a euphemism for argument!&lt;BR&gt;&lt;BR&gt;My belief is that certain people take some kind of comfort in being handed a tome-like Word document as a tangible deliverable from a given piece of work - and worse still, make a judgement on whether the work was value for money based on the page count - in my experience the usefulness of a document is often inversely proportional to its length!&lt;BR&gt;&lt;BR&gt;The problem is, in my opinion, producing documentation using traditional word processing tools seems to encourage verbosity - you feel obliged to include such elements exposition, context, and background regardless of whether they are really needed to get your message across. On top of this, I often find that the richness of the formatting functionality contained by such packages can be a distraction from the actual content.&lt;/P&gt;
&lt;P&gt;All you adept Word users (I consider myself in that bracket - 3 years working in a Law firm's IT group leaves it mark), how may times have you found yourself battling with some shonky template that just refuses to number or layout your headings properly? (OK, I guess that's just me then)&lt;/P&gt;
&lt;P&gt;My point is that by stripping the formatting and layout features back to the necessities you no longer get caught up in trying to bend the tool your will, instead you just get on with producing the content - back in the dot com days there was a phrase banded about by start-ups as to why they could make it big - 'Content is King' - I believe that this is certainly truer for documentation than it was for them.&lt;/P&gt;
&lt;P&gt;Don't get me wrong, there will always be a place for the traditional word processing document as the appropriate deliverable, but I think only for specific types of work. Typically, I consider these to be reviews or analysis-oriented work where the end results are essentially static and represent a state of affairs at a given time.&lt;/P&gt;
&lt;P&gt;I believe most technical documentation should be treated as 'living' and updated as necessary - an out of date technical document is next to useless, and 70 page word documents just don't get habitually updated. For me, that's why Wiki-based documentation is so powerful - the latest version of the content is always available and can be collaboratively updated with minimum friction to your actual task in hand. For instance, following a set of procedures (perhaps written by someone else) and finding an error or omission - you can quickly add or amend the information and get back to following the rest of the procedures, and your learning's are immediately available for the next person.&lt;/P&gt;
&lt;P&gt;It's no panacea of course, a key drawback I have hit with using this approach (other than convincing clients that this type of documentation is as good as the 'real thing') is when you need to get the content into a hard-copy or any other offline form - if you have structured the content across a number pages (i.e. due to length), with perhaps a table of contents page as the entry point, you have to visit and print each page individually.... if only there were some kind of recursive print function.....&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=1980" width="1" height="1"&gt;</description></item><item><title>Using Visual Studio Solution Files with MSBuild</title><link>http://blogs.conchango.com/jamesdawson/archive/2005/07/22/1824.aspx</link><pubDate>Fri, 22 Jul 2005 18:56:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:1824</guid><dc:creator>james.dawson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.conchango.com/jamesdawson/comments/1824.aspx</comments><wfw:commentRss>http://blogs.conchango.com/jamesdawson/commentrss.aspx?PostID=1824</wfw:commentRss><description>&lt;p&gt;As previously discussed by &lt;a href="https://blogs.conchango.com/simonevans/archive/2005/02/26/1072.aspx"&gt;Simon&lt;/a&gt;,
there are issues with pointing MSBuild at a Visual Studio&amp;nbsp;solution
file to build your project assemblies - the alternatives are to either
build each of the projects individually (using &lt;font face="Courier New" size="2"&gt;&amp;lt;MSBuild/&amp;gt;&lt;/font&gt; tasks)&amp;nbsp;or to call VS itself to build the solution (the &lt;a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=2cb20e79-d706-4706-9ea0-26188257ee7d"&gt;SDC Build Tools&lt;/a&gt; project has a custom task to easily do this).&lt;/p&gt;
&lt;p&gt;The former approach causes some maintenance headaches by requiring
the MSBuild script to be updated anytime a project is added or removed
from the solution - whereas the latter option means you must have
Visual Studio installed (which was supposed to be one of the benefits
of using MSBuild) and can also result in some referencing issues the
first time you&amp;nbsp;build a solution after&amp;nbsp;project changes.&lt;/p&gt;
&lt;p&gt;In order to try and get the best of boths worlds, I started thinking
about dynamically generating an MSBuild script with all the tasks
needed to build each VS project referenced by the targetted&amp;nbsp;&lt;font face="Courier New" size="2"&gt;.sln&lt;/font&gt;
file (i.e. the first of the above approaches, but with all the leg-work
automated).&amp;nbsp; My preferred tool for such things (since being
introduced to it by &lt;a href="https://blogs.conchango.com/howardvanrooijen/default.aspx"&gt;Howard&lt;/a&gt;) is the excellent &lt;a href="http://www.codesmithtools.com/"&gt;CodeSmith &lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;By running the template below prior to calling
MSBuild,&amp;nbsp;the&amp;nbsp;tasks needed to build all the Solution's
projects&amp;nbsp;are&amp;nbsp;written to a &lt;font face="Courier New" size="2"&gt;.targets&lt;/font&gt; file that&amp;nbsp;can be&amp;nbsp;&lt;font face="Courier New" size="2"&gt;&amp;lt;Import&lt;/font&gt;'d
by the main MSBuild script - in&amp;nbsp;my case this 2-step process is
wrapped&amp;nbsp;by a simple&amp;nbsp;batch file that gets called&amp;nbsp;by&amp;nbsp;&lt;a href="http://continuousintegration.net/"&gt;CruiseControl&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;

&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" face="Courier New" size="2"&gt;&amp;lt;%-- &lt;br&gt;Description: Generates an MSBuild script to build each of the Visual Studio&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
projects found within the specified Visual Studio Solution file.&lt;br&gt;%&amp;gt;&lt;br&gt;&amp;lt;%@
CodeTemplate Language="C#" TargetLanguage="Text" Src="" Inherits=""
Debug="False" Description="Generate MSBuild actions from Solution file"
%&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" face="Courier New" size="2"&gt;&amp;lt;%@ Property
Name="SolutionFile" Type="System.String" Default="" Optional="False"
Category="Strings" Description="VS.NET Solution file to process" %&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" face="Courier New" size="2"&gt;&amp;lt;%@ Import Namespace="System.Diagnostics" %&amp;gt;&lt;br&gt;&amp;lt;%@ Import Namespace="System.IO" %&amp;gt;&lt;br&gt;&amp;lt;%@ Import Namespace="System.Text.RegularExpressions" %&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" face="Courier New" size="2"&gt;&amp;lt;%&lt;br&gt;if ( !File.Exists(this.SolutionFile) )&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new ArgumentException("ERROR:\nUnable to find the VS.NET Solution file:\n" + this.SolutionFile);&lt;br&gt;}&lt;br&gt;else&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.SolutionFile = Path.GetFullPath(this.SolutionFile);&lt;br&gt;}&lt;br&gt;%&amp;gt;&lt;br&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br&gt;&amp;lt;Project DefaultTargets="Build" xmlns="&lt;/font&gt;&lt;a href="http://schemas.microsoft.com/developer/msbuild/2003"&gt;&lt;font color="#0000ff" face="Courier New" size="2"&gt;http://schemas.microsoft.com/developer/msbuild/2003&lt;/font&gt;&lt;/a&gt;&lt;font color="#0000ff" face="Courier New" size="2"&gt;"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Target Name="BuildProjects"&amp;gt;&lt;br&gt;&amp;lt;%&lt;br&gt;string contents;&lt;br&gt;using ( StreamReader sr = new StreamReader(this.SolutionFile) )&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; contents = sr.ReadToEnd();&lt;br&gt;}&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" face="Courier New" size="2"&gt;// The regular expression below extracts the project information from&lt;br&gt;// the relevant part of the solution file - the format of which seems to&lt;br&gt;// be the same in VS 2003 &amp;amp; 2005&lt;br&gt;Regex regex = new Regex("^Project\\(.*\\s=\\s\"(?&amp;lt;projectName&amp;gt;.*)\",\\s\"(?&amp;lt;projectPath&amp;gt;.*)\",");&lt;br&gt;MatchCollection matches = regex.Matches(contents);&lt;br&gt;if ( matches.Count &amp;gt; 0 )&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ( Match match in matches )&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string projectName = match.Groups["projectName"].Value;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string projectPath = match.Groups["projectPath"].Value;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Trace.WriteLine( string.Format("ProjectName: {0}\nProjectPath: {1}",
projectName, projectPath) );&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Make sure that the reference in the .sln file is really a project&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // and not just a Solution Folder&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( projectName != projectPath &amp;amp;&amp;amp; projectPath.EndsWith("proj") )&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;MSBuild
Projects="&amp;lt;%=Path.Combine(Path.GetDirectoryName(this.SolutionFile),projectPath)%&amp;gt;"
Targets="Clean;Rebuild" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;%&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;else&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
throw new ApplicationException( string.Format("ERROR:\nThe specified
Solution file contains no projects:\n{0}", this.SolutionFile) );&lt;br&gt;}&lt;br&gt;%&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Target&amp;gt;&lt;br&gt;&amp;lt;/Project&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" face="Courier New" size="2"&gt;&amp;lt;script runat="template"&amp;gt;&lt;br&gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=1824" width="1" height="1"&gt;</description></item><item><title>IIS 6 Application Pool Identities</title><link>http://blogs.conchango.com/jamesdawson/archive/2005/06/22/IIS-6-Application-Pool-Identities.aspx</link><pubDate>Wed, 22 Jun 2005 16:32:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:1706</guid><dc:creator>james.dawson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.conchango.com/jamesdawson/comments/1706.aspx</comments><wfw:commentRss>http://blogs.conchango.com/jamesdawson/commentrss.aspx?PostID=1706</wfw:commentRss><description>This afternoon has been one of those annoying situations where you burn lots of time trying to resolve a problem, only to find that:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;the solution is easy-peasy&lt;/li&gt;&lt;li&gt;you wonder why you didn&amp;#39;t try the resolution sooner&lt;/li&gt;&lt;li&gt;you discover some new &amp;#39;quirk&amp;#39; about the system you&amp;#39;re using.... which kind of answers the above question!&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;I&amp;#39;ve spent most of this afternoon troubleshooting a security issue with a web-based BizTalk administration tool that I was trying to deploy to a new server.&amp;nbsp; Part of the tool performs some remote performance monitoring of BizTalk application servers, which obviously requires a specific security rights.&lt;br /&gt;&lt;br /&gt;The site runs within its own application pool (on Windows Server 2003), which was using a domain user account as its identity - needed due to the remote monitoring requirement.&amp;nbsp; I was pretty certain that I&amp;#39;d got the security requirements nailed, but despite this I could not get the site to work using the domain account, yet it worked fine using a local account with exactly the same local group membership.&lt;br /&gt;&lt;br /&gt;Anyway after spending way too much time double-checking all sort of other settings, and confirming that the IIS worker process and the ASP.NET request were definitely running in the intended user context, I realised that in-between the various group membership changes I had made at the start of this saga, I had only been stopping and starting the application pool.&lt;br /&gt;&lt;br /&gt;This, despite actually stopping the physical process running the application pool (and obviously causing the ASP.NET application to restart) did not allow the newly-created worker process to get its new group memebership details.&amp;nbsp; Performing a full IISRESET, on the other hand, had the desired effect and the everything started working as expected.&lt;br /&gt;&lt;br /&gt;Seems like there must be some kind of caching going on somewhere...... maybe the IIS Admin/WWW service caches group memebership information at startup, and worker processes use this?&amp;nbsp; Whatever the reason, it seems that when an IIS 6 worker process gets created it doesn&amp;#39;t logon in the same way as a usual system service.&lt;br /&gt;&lt;br /&gt;I imagine this can be explained by the IIS 6 architecture somehow, however, for now I just need to make up some time!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=1706" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/jamesdawson/archive/tags/IIS/default.aspx">IIS</category></item><item><title>Word Documents and FlexWiki</title><link>http://blogs.conchango.com/jamesdawson/archive/2005/04/14/1289.aspx</link><pubDate>Thu, 14 Apr 2005 18:34:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:1289</guid><dc:creator>james.dawson</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.conchango.com/jamesdawson/comments/1289.aspx</comments><wfw:commentRss>http://blogs.conchango.com/jamesdawson/commentrss.aspx?PostID=1289</wfw:commentRss><description>&lt;FONT size=2&gt;
&lt;P&gt;We've been using &lt;A href="http://www.flexwiki.com/"&gt;FlexWiki&lt;/A&gt; on the last couple of projects I've worked on, as a lightweight collaboration tool providing a repository for project documentation.&amp;nbsp; In particular, processes and procedures, which really benefit from the ease of editing that Wiki's provide - enabling those following the procedure to correct/refine/expand it as they go.&lt;/P&gt;
&lt;P&gt;I'm currently in the latter stages of a project, where I'm doing a lot of hand-over and trying to make sure that all the documentation is together. &amp;nbsp;Today involved trying to get a bunch of Technical Design documents loaded into the Wiki, where they would be more accessible - the problem was that they had originally been written as Word documents, and I didn't much fancy the prospect of a manually cut 'n pasting / reformatting session&amp;nbsp;for 30 documents.&lt;/P&gt;
&lt;P&gt;As so often is the case, Google was my friend and I came across &lt;A href="http://tikiwiki.org/tiki-index.php?page=WordToWiki_swythan"&gt;this&lt;/A&gt; - a Word macro aimed at converting documents for &lt;A href="http://tikiwiki.org/"&gt;TikiWiki&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;A little bit of tweaking, a few additions and I had a macro to convert Word documents into FlexWiki-style mark-up.&amp;nbsp; On the off-chance that&amp;nbsp;anyone else might find it useful the macro can be downloaded below.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A word of warning though (no pun intended), really big documents or tables will suck the life out of your computer - and you'll also learn to hate all those people who don't know how to use numbered lists in Word, and just type them manually!&lt;/P&gt;
&lt;P&gt;It handles conversions for the following: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Headings(1-3) 
&lt;LI&gt;Bold 
&lt;LI&gt;Italics 
&lt;LI&gt;Underline 
&lt;LI&gt;Strikethrough 
&lt;LI&gt;Bullet lists 
&lt;LI&gt;Numbered lists (no fancy styles or continuations) 
&lt;LI&gt;Tables (within the limitations of FlexWiki tables) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;It also escapes or changes&amp;nbsp;certain characters that FlexWiki might otherwise treat as mark-up:&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;'+' becomes '+++' 
&lt;LI&gt;'[' becomes '{' 
&lt;LI&gt;'] ' become '}'&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;***&lt;/P&gt;
&lt;P&gt;Standard disclaimer about this macro &lt;U&gt;not &lt;/U&gt;being warranted as 'fit for purpose'&amp;nbsp;- don't blame me if your 50 page tome gets trashed as a result of running this macro.&lt;/P&gt;
&lt;P&gt;MAKE SURE YOU HAVE A BACKUP OF YOUR DOCUMENT BEFORE RUNNING THE MACRO - as it modifies the document in-situ and copies the result into the clipboard, ready for it to be pasted into FlexWiki.&lt;/P&gt;
&lt;P&gt;***&lt;/P&gt;
&lt;P&gt;If you're still interested after all that, you can download it &lt;A href="http://blogs.conchango.com/jamesdawson/files/Word2FlexWiki.bas"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=1289" width="1" height="1"&gt;</description></item><item><title>'Zombie' Isolated Adapter Instances</title><link>http://blogs.conchango.com/jamesdawson/archive/2005/03/04/_2700_Zombie_2700_-Isolated-Adapter-Instances.aspx</link><pubDate>Fri, 04 Mar 2005 11:53:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:1112</guid><dc:creator>james.dawson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.conchango.com/jamesdawson/comments/1112.aspx</comments><wfw:commentRss>http://blogs.conchango.com/jamesdawson/commentrss.aspx?PostID=1112</wfw:commentRss><description>&lt;p&gt;This all seems quite common sense now I&amp;#39;ve had a think about it, but I know it was puzzling some people so on that basis I thought it worth posting. The scenario is HAT filling up with Dehydrated instances of the Isolated adapter, that have to be manually terminated.&lt;/p&gt;&lt;p&gt;If you look at the &amp;#39;Activation Time&amp;#39; of these instances, they should correlate to the first time a web service was called after the IIS worker process was recycled (by default IIS sets this to happen every 29 hours, though of course it can be done manually as well) - there should be one instance per web server, per application pool accessing BizTalk. &lt;/p&gt;&lt;p&gt;When the worker process restarts (on the next request) it registers itself with BizTalk creating a new Isolated adapter instance, but doesn&amp;#39;t un-register itself when terminating, hence the build-up over time.&lt;/p&gt;&lt;p&gt;In our scenario we have a pair of web servers hosting two Orchestration proxy web services, one that is called on a frequent scheduled basis and another that gets called on an ad-hoc basis by a Siebel workflow - a single application pool is used, which gets recycled every day at 4am.&lt;/p&gt;&lt;p&gt;Due to the use o