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 05, 2004 11:12 AM by Jamie Cansdale
Filed under: ,

Comments

# MSBuild for .NET 1.x

<p><a href="http://weblogs.asp.net/nunitaddin/">Jamie</a> has <a href="http://weblogs.asp.net/nunitaddin/archive/2004/10/05/238009.aspx">revealed</a> how to use MSBuild to compile for .NET 1.x, and he's produced a tool to help!</p><blockquote><p>I kept me

Tuesday, October 05, 2004 4:35 AM by TrackBack

# Hack the Build: Targetting .NET Runtime 1.1 Step-by-Step

Tuesday, October 05, 2004 2:42 PM by TrackBack

# .NET Nightly 166

Wednesday, October 06, 2004 5:37 PM by TrackBack

# re: 09-21-2004 Talk Follow-Up: Test-Driven Devlopment

Friday, October 08, 2004 5:28 AM by TrackBack

# re: CruiseControl.NET and MSBuild

Sunday, October 10, 2004 6:10 AM by TrackBack

# re: Build Management in .Net

Tuesday, October 12, 2004 1:46 AM by TrackBack

# 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

# re: Introducing MutantBuild

Wednesday, November 03, 2004 5:29 AM by 六合彩

# re: Introducing MutantBuild

Wednesday, November 03, 2004 5:30 AM by 六合彩

# SDC Build Tools and 1.0?

Tuesday, November 09, 2004 10:59 PM by TrackBack

# Regurgitated build stuff and more

Regurgitated build stuff and more

Friday, November 12, 2004 2:34 AM by TrackBack

# partial solution to my problem

Monday, December 13, 2004 3:05 PM by TrackBack

Leave a Comment

(required) 
(required) 
(optional)
(required)