Recursion, and ItemGroups inside Targets

Greetings MSBuilders! An internal team (Office Live, I think) asked us how to make their build start up faster. Their traversal project at the root of their tree started like this: <Project xmlns=”http://schemas.microsoft.com/developer/msbuild/2003″>  <ItemGroup>    <ExcludedDirectory Include=”$(BuildPath)\**\Common\Databases\**\*.csproj”/>    <ExcludedDirectory Include=”$(BuildPath)\**\Common\External\**\*.csproj”/>    <ExcludedDirectory Include=”$(BuildPath)\**\Common\Library\**\*.csproj”/>    <ExcludedDirectory Include=”$(BuildPath)\**\Common\Tools\**\*.csproj”/>    <ExcludedDirectory Include=”$(BuildPath)\**\Common\Utils\**\*.csproj”/>    <ExcludedDirectory Include=”$(BuildPath)\**\Common\WebControls\**\*.csproj”/>     <DotNetProjects Include=”$(BuildPath)\**\*.csproj” Exclude=”@(ExcludedDirectory)”/>    <NativeProjects Include=”$(BuildPath)\**\*.CPPproj” Exclude=”@(ExcludedDirectory)” />    <WebProjects…

3

Multi-Targeting : How does it work?

So in my last post, I described the multi-targeting feature at a very high level. I discussed how there will be three frameworks that you can build “for”, and how there will be two toolsets – i.e. .NET Framework 2.0 / MSBuild 2.0 toolset, and the .NET Framework 3.5 / MSBuild 3.5 toolset. Recall that the…

15

New Feature Feedback Request: /IgnoreProjectExtensions – A new command-line switch

I’ve been in a cave just getting things done toward our Orcas release. But there’s not much a Program Manager can do without going back to their customers 🙂 So here I am. So here’s the scoop.  We’ve been debating internally about a new command line switch on msbuild.exe for sometime now. I am not certain…

11

Sprint 12 review

This morning we had our review of work done during Sprint 12. As you hopefully recall we run two sprints simultaneously: one focused on our conversion effort and one focused on platform investments. Sumedh got stuck in traffic on 520, so Faisal stepped in to drive the proceedings. Faisal handled it well, applause applause. And…

0

Platform Sprint 11

The new year got off to a good start for us with the MSBuild Platform Sprint 11 Backlog selection meeting. Platform Sprint 10 was focused mostly on getting our Compatibility story in place. All of the work from the last sprint in terms of compatibility has been checked in and is now in use. This means that…

0

Sprint 10 Review

Today we’re holding our Sprint 10 review. If you recall we do sprints for both dogfooding support and platform work. Here’s a recap of what we accomplished in the last month. Dogfooding Six more teams within Visual Studio completed converting to MSBuild We completed our first integration of all the converted branches into the parent…

0

Sprint 9 Review

It’s been about a month since we last talked about Sprint 9, and it’s time for an update. If you recall, the MSBuild team was planning on two parallel sprints: one for platform investigations and one to support internal dogfooding efforts. Last Friday marked the end of the sprints, and on Monday we held our…

415

Parallelizing Visual Studio solutions

One of the MSBuild Team’s scenarios for multi-proc builds is the automatic parallelization of Visual Studio solutions. For this scenario, we want Visual Studio to automatically parallelize all “independent” projects, and serialize all “dependent” ones. The key here is the separation of projects into the “independent” and “dependent” buckets. The separation is entirely based on…

4

Parallel builds scenarios and implementation ideas

The MSBuild Team has started thinking about adding multi-proc support to the MSBuild engine. Currently MSBuild is single-threaded and does not take advantage of any opportunities for parallel processing during a build. However, most builds inherently have chunks of work that can be done concurrently. By parallelizing these independent chunks of work we aim to…

3