UPDATE: The MSBuild Everett Environment (MSBEE) has just been announced! Soon this will be a (reasonably) supported scenario and we'll all be able to build both 1.1 and 2.0 versions of .NET code on Visual Studio 2005. Shiny.
I'm definitely digging the information on Jomo Fisher's MSBUILD blog. I've long been critical of MSBUILD calling it a "NAnt wanna-be" (usually in bitterness) because I'm SUCH a NAnt fan. However, while writing the book and working with VS.NET 2005 on the Coding4Fun articles I've grown to respect MSBUILD as an entity in its own right. More and more, I've been consistently impressed with it's flexibility and power.
Here's some gems from Jomo's site:
- Programmatically Converting older Projects to MSBuild - This kicks ass:
static void Main(string args)
ProjectFileConverter c = new ProjectFileConverter();
c.OldProjectFile = args;
c.NewProjectFile = args;
- Using VS.NET to target .NET 1.1 - A great and very visceral example of how the .targets system works. Additional info at Jon Galloway's blog who linked to Armand's blog. I ended up using Armand's "Everett Target" installer and it worked great with RTM. Armand's installer is a roll-up of Jomo's sample.
- Disclaimer: This target doesn't support COM references, Web references and a few other cases. But it sure proves the concept!
- ACTION REQUIRED (That means you blog reader!): Clichten is looking for feedback on this very issue. Should Microsoft offer rich target support for ISVs and vendors to target 1.1 with VS.NET 2005? Damn right they should.
Other MSBUILD loveliness from elsewhere on the 'Net: