Building .NET 1.1 Projects using Visual Studio 2005
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.
- If you care about this issue, go make your voice heard!
Other MSBUILD loveliness from elsewhere on the 'Net:
- Gustavo Guerra has a .targets file that adds 11 new targets to VS.NET 2005 including Mono. I suspect we're going to see some amazing stuff happening around targets. It'll be interesting to see how far it goes.
- Speculation: Could this flexibility make VS.NET 2005 an Eclipse competitor by enabling non-.NET targets?
- SharpDevelop (an alternate free .NET IDE) ships with two custom MSBuild Tasks for Mono explains Matt Ward. It takes a different tack than Gustavo's .target file. Instead the custom tasks do the actual work of compiling the code and delegating to MCS (the Mono compiler)
- Robert McLaws continues to push the MSBUILD envelope. Robert's MSBuild toolkit may be the engine on top of the engine. He adds a much-needed MSBUILD Configuration option to the Solution Explorer. He says, Watch this space. And I watch.