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

7 Comments

  • "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.

  • webster,



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

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

  • 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].

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

  • "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.

  • 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. :(

Comments have been disabled for this content.