One of the FAQs in Team Foundation forums have been on "how to build .NET 1.1 application using Team Build". My colleague Nagaraju put up this blog to give out detailed steps for this. Apart from this, there were various other solutions on how to build .NET 1.1 using MSBuild (and hence in turn by Team Build) from different folks like one by Jomo.
All this solutions were essentially a hack... they mostly worked but lacked elegance. The developers wanted better solution. Considering the increasing demand for better support for building .NET 1.1 using MSBuild, the MSBuild team came up with project called MSBee or MSBuild Everett (code name for VS 2003) Environment. The Beta 2 of MSBee is available here.
The MSBee could be used with Team Build also. To do so, you need to do the following -
The modification required in TFSBuild.proj are -
a) Download and checkin the attached BuildingFx11inTB.targets alongside TFSBuild.proj. (I am trying attachment to a blog for the first time... hopefully it will work!)
b) Add an import statement to TFSBuild.proj file after import of Microsoft.TeamFoundation.Build.targets file. The import statement would look like -
<Import Project="$(MSBuildProjectDirectory)\BuildingFx11inTB.targets" />
c) Add following property to point to the 1.1 targets file -
<PropertyGroup> <AdditionalPropertiesForBuildTarget>CustomAfterMicrosoftCommonTargets=$(ProgramFiles)\MSBuild\MSBee\MSBuildExtras.Fx1_1.CSharp.targets</AdditionalPropertiesForBuildTarget> </PropertyGroup>
And thats all. The steps a) and b) are required because the current version of the targets file did not provide easy way to pass additional properties while compiling individual project files. We are considering fixing this for next release to simplify this.
Note that the above solutions assume that all your projects are in C#. Instead, if all the projects are in VB, change the MSBuildExtras.Fx1_1.CSharp.targets in the property defination above to MSBuildExtras.Fx1_1.VisualBasic.targets. In case you have mix of C# and VB, use the workaround suggested in section 4.2.2 of "MSBee ReadMe.doc"