aspnet命令行工具位置

时间:2009-09-23 15:51:33

标签: asp.net

Microsoft提供了许多用于处理asp.net应用程序的命令行工具。我使用这些工具没有遇到任何麻烦。但我无法理解的一件事是这些工具的位置。

即使针对较新版本的.net的应用程序,这些工具也位于.net v2目录中。在我的机器上,那是C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727。为什么v3.0v3.5目录中不存在这些工具?为什么旧目录中的那些工作在较新的框架上?

对我来说,这更像是一种不必要的知识,但我想知道。

更新

感谢大家的好回答。这些答案提出了一个新问题。我希望你能原谅我在这里提问,因为它是如此高度相关。如果.net 3.5真的只是使用2.0的CLR,为什么2.0与Windows 2000兼容,而不是3.5?在我看来,如果3.0和3.5中的更新在早期版本的框架内运行,那么它们也必须保持与早期版本相同的平台的兼容性。为什么这是错的?

4 个答案:

答案 0 :(得分:3)

.NET 3.0和3.5(基本上)just library additions to the 2.0 framework

  

.NET 3.0的添加并不意味着新的编译器或新的CLR。相反,它是三个主要的新库:WCF(Windows CommunicationFoundationnéeIndigo),WPF(Windows PresentationFoundationnéeAvalon)和Windows Workflow或WF。

     

基本上,请记住Framework版本!= CLR版本。如果您将IIS应用程序配置为使用.NET 2.0,则说明的是2.0 CLR。 WCF应用程序将.NET 2.0 CLR与新的3.0 WCF库一起使用。

* .NET Framework 1.x = CLR 1.x
* .NET Framework 2.0 = CLR 2.0
* .NET Framework 3.0 = CLR 2.0
* .NET Framework 3.5 = CLR 2.0 + (C# 3.0 | VB9)

修改: 为了回答第二个问题,.NET 3.0和3.5有新的库引用了操作系统级功能,如WPF,这在Windows 2000上不可用。如果你用3.5 *编写一个应用程序,但只使用功能和库它也可以在2.0中使用,它仍然可以在Windows 2000上运行。

* by“in 3.5”,我们的意思是在3.5以下的Visual Studio 2008中编写它,但将Project Target Framework设置为2.0。 Scott Hanselman talks about doing this让ASP.NET MVC在.NET 2.0上工作。

答案 1 :(得分:1)

v3.0和v3.5仍然使用v2 DLL作为核心文件。大多数更改都是对v2框架的补充以及3.5的新编译器。

答案 2 :(得分:1)

因为自.2.0以来,.Net的核心实际上并没有被改变。 MS营销类型在当时强迫使用的命名方案受到很多嘲笑,其中.Net 3和.Net 3.5实际上只是添加了在.Net 2核心上运行的其他库。

查看Scott Hanselman的blog post了解更多详情。

答案 3 :(得分:1)

因为.NET 3.0和3.5是.NET 2.0的应用程序,而不是完整的独立框架。这在IIS配置中进一步看到,您只能选择.NET 1.0,.NET 1.1和.NET 2.0。您的web.config文件将包含任何.NET 3.0或.NET 3.5程序集,因为这些程序最终使用.NET 2.0代码编写。有关详细信息,请参见此处:http://www.hanselman.com/blog/HowToSetAnIISApplicationOrAppPoolToUseASPNET35RatherThan20.aspx

当然,.NET 4.0中的所有更改都将成为框架的完全“新版本”。