Question

When I enumerate the Microsoft.NET Framework directories, there aren't any for .NET v3.0.

PS> Resolve-Path c:\windows\Microsoft.NET\Framework\*\msbuild.exe

Path
----
C:\windows\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe
C:\windows\Microsoft.NET\Framework\v3.5\MSBuild.exe
C:\windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe

Are the tools part of the .NET v2.0 installation and .NET v3.0 was a simple add-on? Or did .NET v3.5 replace the older tools?

Was it helpful?

Solution

Quoting this MSDN site:

This version (3.0) is essentially .NET Framework 2.0 with the addition of Windows Presentation Foundation (WPF), Windows Communications Foundation (WCF), Windows Workflow Foundation (WF), and CardSpace. It was updated with SP1 and SP2.

I am guessing that because no new features were added and no new version of the CLR was created even the same VS2005 version could build .net 3.0 projects, the same MSBuild for .Net v2.0 works on .Net v3.0.

On the other hand, in v3.5, a new version of VS (2008) was released, and features were added (LINQ):

Added new features such as AJAX-enabled websites and LINQ. The SP1 update added Dynamic Data, and a small set of additional enhancements.

OTHER TIPS

.net 3 and 3.5 both run under the .net 2.0 clr, and were basically feature packs. .net 4 runs under a new clr, which i assume would mean a different version of msbuild, etc.

Basically .net framework version and CLR version are different, the .net versions run under the hood of CRL versions. You can see the difference while creating new website or change the application pool’s .net framework version you can see the list is showing you fewer version compare to what you think you have installed. They are like to be as below 1.0, 2.0 and 4.0.

enter image description here

With .net framework 1.x the CRL version were 1, for 2.0 and 3.X .Net framework the CLR version was 2.0 and for .net framework 4.x the CLR version is 4.0

Much better explained here.

The reason behind that is there was no need to update MSBuild.exe when .NET 3.0 came. In that case reuse the .NET 2 MSBuild is smart.

MSBuild.exe 3.5 introduces many critical updates,

http://blogs.msdn.com/b/msbuild/archive/2007/11/22/msbuild-3-5-orcas-has-now-shipped.aspx

, but the main features are:

-- Multiprocessor support -- currently command line only, just build your solutions with /m switch. Includes a new improved console logger optimized for multiproc builds

-- Multitargeting support -- use MSBuild 3.5 to build projects targeting .NET 2.0 if you wish; mix targets within a tree or solution

-- Performance improvements. Your should see improvements in full builds, but most especially in incremental builds. We have seen some larger incremental build scenarios double in speed. On Vista, we see even bigger improvements, due to SuperFetch. This is all without even enabling multiproc!

A couple of more minor features

-- ItemDefinitionGroups -- "types" for items.

-- PropertyGroup/ItemGroup inside targets just like outside -- no more unreadable CreateItem/CreateProperty

-- Ability to remove items from lists and modify item metadata during the build -- no more "sloshing" into another list

Therefore, we see .NET 3.5 shipped with a new MSBuild. This also applies .NET 4 and .NET 4.5, where MSBuild received further updates,

http://msdn.microsoft.com/en-us/library/ee240939(v=vs.100).aspx

http://msdn.microsoft.com/en-us/library/hh162058.aspx

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top