Introducing MutantBuild

I'm now using MSBuild and WiX for all of my active projects. I ended up with a few VS2003 solutions that I didn't want to convert to VS2005/MSBuild format for one reason or another. It is a pain keeping Windows Forms applications compatable with .NET 1.x when editing using VS2005. I also wanted to be able to compile NUnit for .NET 1.0 using the VS2003 solution strait out of SourceForge.

I kept meaning to post about compiling for .NET 1.x using MSBuild. I had everything working on my machine, but getting everything into the right place was a little involved. I've ended up writing an installer that collects together all the files you need along with the required modifications.

You can find the installer and documentation here.

Using it is very straightforward. Say you wanted to compile a VS2003 (or VS2005/MSBuild) solution for .NET 1.0.  After installing MutantBuild, execute the following from the command line...

> mutantbuild @debug(1.0).response your.sln
Published Tuesday, October 5, 2004 11:12 AM by Jamie Cansdale
Filed under: ,

Comments

# re: Introducing MutantBuild

"Using it is very strait forward." Hmm. Did you really mean to say that? It seems to imply that MutantBuild is easy to use, but look up the definition of "strait" (when it's spelled that way and used as an adjective): "Difficult; stressful."

Hopefully, it really is easy and straightforward.

Tuesday, October 12, 2004 11:25 AM by webster

# re: Introducing MutantBuild

webster,

Good point! How do you spell strait-forward anyway? Is it just straitforward? Damn my dyslexic brain. ;)

Tuesday, October 12, 2004 11:39 AM by Jamie Cansdale

# re: Introducing MutantBuild

The correct spelling was in my original post. "straightforward"

Wednesday, October 13, 2004 9:33 AM by webster

# re: Introducing MutantBuild

I am getting this error when i try to compile 1.0 solution (C#) with MSBuild..Also Can I build c++ (1.0) projects with MutantBuild

Thanks

Microsoft (R) Build Engine Version 2.0.40607.42
[Microsoft .NET Framework, Version 2.0.40607.42]
Copyright (C) Microsoft Corporation 2004. All rights reserved.

MSBUILD : error MSB1025: An internal failure occurred while running MSBuild.

Unhandled Exception: System.IO.FileNotFoundException: File or assembly name 'Mic
rosoft.Build.Conversion, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03
f5f7f11d50a3a', or one of its dependencies, was not found.
File name: 'Microsoft.Build.Conversion, Version=2.0.3600.0, Culture=neutral, Pub
licKeyToken=b03f5f7f11d50a3a' ---> System.IO.FileNotFoundException: The system c
annot find the file specified.
at MutantDesign.Build.MutantBuild.ConvertInPlaceProject(String oldProjectFile
)
at MutantDesign.Build.MutantBuild.ConvertInPlaceProjects(Project solutionProj
ect, String solutionDir)
at MutantDesign.Build.MutantBuild.Convert(String solutionFile)
at Microsoft.Build.CommandLine.XMakeApp.BuildProject(String projectFile, Stri
ng[] targets, PropertyGroup propertyBag, ILogger[] loggers, Boolean needToValida
teProject, String schemaFile)
at Microsoft.Build.CommandLine.XMakeApp.Main()

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\M
icrosoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure lo
gging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fus
ion!EnableLog].

Wednesday, October 27, 2004 5:23 PM by Shailesh J

# re: Introducing MutantBuild

The copyright on MutantBuild.exe says Microsoft. Is it something they did or is it yours? Isthe source available?

Wednesday, October 27, 2004 10:31 PM by Gary Feldman

# re: Introducing MutantBuild

"I've ended up writing an installer that collects together all the files you need along with the required modifications."

It is a tweaked version of MSBuild.exe that lets you compile VS2003 solutions (hence 'Mutant' build ;). I'm working on a less invasive hack that doesn't involve modifying the MSBuild bytecode.

Thursday, October 28, 2004 6:25 AM by Jamie Cansdale

# re: Introducing MutantBuild

Shailesh,

The installer doesn't actually included all of the bits. It just collects together all of the stuff you need. Unfortunately 'Mic
rosoft.Build.Conversion' isn't part of the .NET 2.0 beta 1 distro. To get that would you need to install VS2005 or one of the Express products.

Unfortunately the version of MSBuild that comes with the latest batch of Express products has changed. The problem is the strong name version number hasn't changed (!!) and MSBuild is now deployed in the GAC. The xcopy deployable MutantBuild doesn't stand a chance. The GACed assemblies get used and it breaks. :(

Thursday, October 28, 2004 6:34 AM by Jamie Cansdale