Change the "Sources", "Binaries" and "TestResults" folders in Team Build

2013-07-18

Team Build by default creates 2 folders on your build agent:

  • 2010
    • Sources
    • Binaries
    • TestResults
  • 2012:
    • src
    • bin
    • TestResults
  • 2013:
    • src
    • bin
    • tst
These folder names were shortened as part of the 2012 release, partially to resolve "Path too long" issues with team build. But some of your scripts might depend on the old naming. (Or maybe you want to change the "TestResults" folder to something simpler, like "test".

Update to WebTools 2012.2 to resolve System.ComponentModel.Composition.ImportCardinalityMismatchException

2013-07-15

Today one of my teams was greeted by a Visual Studio crash upon opening their solution. It happened with no changes to the solution over the weekend, but some Windows Updates were remotely installed to the machines.

After some testing we found that the crash will go away by ensuring that the latest version of the WebTools 2012.2 is installed. Since these machines are blocking all kinds of features of Internet Explorer (such as Javascript and exectutable downloads), getting the updated version installed was quite a hassle.

The direct link is here:
  1. Get the ASP.NET 2012.2 pieces then get one of these
  2. Web Tools 2012.2 for any regular Visual Studio 2012 or Web Tools 2012.2 for Visual Studio Web Express
Update the ASP.NET 2012.3 and Web Tools 2012.3 are now out as well:


(Thanks Scott)

Properly incorporate MsBuild arguments into your build process template

2013-07-08

Ever wondered how to put features like Architecture Layer validation into your builds? If you bingle it you'll find loads of posts that tell you which argument to pass to msbuild. The official MSDN docs for this feature can be found here.

Basically, the trick is to either edit your Visual Studio Modelling project to always do layer validation, but that then also happens on the client unless you add a couple of conditions to it:

<!-- Use $(BuildingInsideVisualStudio) or $(TeamBuildConstants) to detect building inside Team Build -->
<PropertyGroup Condition=" '$(BuildingInsideVisualStudio)' == '' "> 
    <ValidateArchitecture>true</ValidateArchitecture>
<PropertyGroup>

Or to to add the following argument to the commandline:

/p:ValidateArchitecture=true

 

Most Reading