Are there any advantages compiling for .NET Framework 3.5 instead of 2.0?.NET Framework 3.5而不是2.0编译有什么优势? 例如更少的内存消耗,更快的启动,更好的性能... 我个人不这么认为,但是我可能错过了一些东西。 编辑:当然,3.5框架中还有更多功能,但是这些不是此问题的重点。 Edit2:似乎没有优势。 Edit3:是的,我的意思是针对框架。 我已经安装了最新的3.5 SP1和VS 2008,因此使用框架进行编译和针对框架有什么区别? 我可以在项目选项中定位框架,但是如何"编译"特定的框架版本? 我不知道有什么区别。 Edit4:所以现在我们同意没有优势。 谢谢你的意见 编译和定位之间有区别。 使用(例如)C#3.0编译器编译代码可能会提高性能(无论如何很少),因为其中包括对生成的IL代码的一些优化。它还允许您使用一些新功能,例如自动属性或lambda表达式。 针对给定框架的目标将确保您的程序集适用于该框架(及后继者),并且如果目标为2.0并且使用3.5库,则将失败。除非您将一个框架中的一个类替换为另一个"最快"类,否则任何性能改进都不会直接与此相关。例如,针对.NET 1.1,将不允许您使用泛型,因此,您必须使用比List慢得多的ArrayList(由于装箱和拆箱)。 关于.NET 2.0和.NET 3.5,要记住两件事。 如果您的.NET程序集以.NET 3.5为目标,则生成的应用程序将查找并需要.NET 3.5库,仅此而已。这些库附带了.NET 2.0框架中找不到的许多其他分类,因此这将是针对这些库的优势。 但是,如果您使用例如附带的C#3.0编译器来编译C#代码。 Visual Studio 2008,适用于.NET 3.5,但装配目标为.NET 2.0,您仍然只需要常规的.NET 2.0库,尽管它实际上使用某些.NET 3.5编译器功能,但其中许多功能最后只使用.NET 2.0代码。在此处了解更多有关此信息:http://weblogs.asp.net/shahar/archive/2008/01/23/use-c-3-features-from-c-2-and-net-2-0-code。 aspx 我相信每个版本的Visual Studio都附带一个不同的编译器。例如,对于C#,Visual Studio 2005附带的2.0编译器和Visual Studio 2008附带的C#3.0。根据所使用的Visual Studio版本,最终会使用不同的编译器。 定位框架是指在编译过程中要定位的框架版本。定位框架是Visual Studio 2008的新功能。例如,我可以在Visual Studio 2008中打开一个解决方案,并以.Net为目标v2.0。结果将是在编译期间我无法使用任何3.0或3.5 .Net功能,例如WPF。 我认为您必须要针对.NET 3.5框架进行编译?如果是这样,那么正如其他人所说,我相信您不会看到太大的不同。 但是,如果您正在谈论使用更新的编译器,则在以下链接中对C#和VB进行了各种更改和中断更改:
如果您没有使用该框架版本中的任何类,则编译到3.5框架没有任何好处。 我还没找到如果您不需要3.5特定功能,则明显的缺点是3.5代码库更年轻,因此有可能(尽管不太可能)潜伏着一些错误。 3.5具有2.0没有的类。例如Func <...>。如果您的目标是2.0,则不能使用它们。 |