2

当我枚举 Microsoft.NET Framework 目录时,没有任何适用于 .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

这些工具是 .NET v2.0 安装的一部分,而 .NET v3.0 是一个简单的附加组件吗?还是 .NET v3.5 取代了旧工具?

4

4 回答 4

1

.net 3 和 3.5 都在 .net 2.0 clr 下运行,基本上都是功能包。.net 4 在新的 clr 下运行,我认为这意味着不同版本的 msbuild 等。

于 2012-10-23T04:32:45.817 回答
1

引用这个MSDN网站:

此版本 (3.0) 本质上是 .NET Framework 2.0,增加了 Windows Presentation Foundation (WPF)、Windows Communications Foundation (WCF)、Windows Workflow Foundation (WF) 和 CardSpace。它已更新为 SP1 和 SP2。

我猜是因为没有添加新功能,也没有创建新版本的 CLR,即使相同的 VS2005 版本可以构建 .net 3.0 项目,相同的用于 .Net v2.0 的 MSBuild 也适用于 .Net v3.0。

另一方面,在 v3.5 中,发布了新版本的 VS(2008),并添加了功能(LINQ):

添加了新功能,例如启用 AJAX 的网站和 LINQ。SP1 更新添加了动态数据和一小组附加增强功能。

于 2012-10-23T04:52:58.350 回答
0

基本上 .net 框架版本和 CLR 版本是不同的,.net 版本在 CRL 版本的引擎盖下运行。您可以在创建新网站或更改应用程序池的 .net 框架版本时看到差异,您可以看到列表显示的版本少于您认为已安装的版本。他们喜欢在 1.0、2.0 和 4.0 以下。

在此处输入图像描述

对于 .net framework 1.x,CRL 版本是 1,对于 2.0 和 3.X .Net framework,CLR 版本是 2.0,对于 .net framework 4.x,CLR 版本是 4.0

在这里更好地解释

于 2012-10-23T05:49:37.883 回答
0

其背后的原因是 .NET 3.0 到来时无需更新 MSBuild.exe。在这种情况下,重用 .NET 2 MSBuild 是明智的。

MSBuild.exe 3.5 引入了许多关键更新,

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

,但主要特点是:

-- 多处理器支持 -- 当前仅命令行,只需使用 /m 开关构建您的解决方案。包括针对多进程构建优化的新改进控制台记录器

-- 多目标支持 -- 如果您愿意,可以使用 MSBuild 3.5 构建面向 .NET 2.0 的项目;在树或解决方案中混合目标

——性能改进。您应该会看到完整构建的改进,尤其是增量构建。我们已经看到一些更大的增量构建方案的速度翻了一番。在 Vista 上,由于 SuperFetch,我们看到了更大的改进。这一切都没有启用多进程!

还有几个小功能

-- ItemDefinitionGroups -- 项目的“类型”。

-- 目标内部的 PropertyGroup/ItemGroup 就像外部一样 -- 不再有不可读的 CreateItem/CreateProperty

-- 能够在构建过程中从列表中删除项目并修改项目元数据 -- 不再“晃动”到另一个列表中

因此,我们看到 .NET 3.5 附带了一个新的 MSBuild。这也适用于 .NET 4 和 .NET 4.5,其中 MSBuild 收到了进一步的更新,

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

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

于 2012-10-26T07:28:41.080 回答