??PROJ is for MSBuild Projects

I’ve been really hard core into TFS and MSBuild lately…. I have to say I really love it. Unfortunatly I’ve been seeing something very disturbing lately….

??PROJ files should be MSBUILD documents!

Starting with VS2005, Microsoft adopted MSBuild in a major way. If you look at VS projects ( like a C# project ) you’ll see that it’s really an MSBuild project file that teaches MSBuild/VS how to build your C# ( .cs ) files.

WiX/Votive v3 gets it right, and InstallShield gets it right also. They each have their own MSBuild project file ( .wixproj and .isproj )and then a specific document format ( .wxs and .ism ) Congratulations WiX and InstallShield!

Unfortunatly other setup tools vendors aren’t getting the message. It all started with that bastard authoring program called Visual Studio Deployment Projects. They use the .vdproj extension, but it’s NOT an MSBuild file. The same goes for WiXAware and Setup Factory for Windows Installer. Both of these tools seem to think that you should put your WiX document right inside the ??proj file.

Wrong! The ??proj file is for MSbuild. The actual source code should go in a seperate source code file. In the case of WiX, it should go in a standard .wxs file with complete compatibility for the standard WiX candle/light toolset programs.

And while we are at it, Visual Studio integration is the only way to fly. Bite the bullet and support it.

This may seem trivial, but anyone who’s gotten into TFS and MSBuild can tell you how much of a pain in the rear it is when your wire up a TFSBuild.proj, point it to the solution to build, add the project to the configuration manager and find out that it won’t work.