Visual Studio版本和.NET目标版本

时间:2011-06-22 15:13:32

标签: .net visual-studio version

我使用VS 2005和.NET 2.0 SP 2.

如果我在同一台机器上安装VS 2008和.NET 4,而不卸载VS 2005,并且我继续使用VS 2005构建一些应用程序,这些应用程序是否会继续使用.NET 2.0,或者它们需要.net 4.0?

我已经阅读过VS 2008可以选择要定位的.NET版本,但VS 2005呢?

提前致谢。

2 个答案:

答案 0 :(得分:3)

您可以安装多个主要版本的.NET Framework,并且可以在Visual Studio 2008或2010中定位其中任何一个,只需转到项目的Property Pages > Build > Target FrameworkProperties > Application > Target Framework(取决于项目类型)选一个。

编辑:上述功能在VS2005中不可用,默认情况下它将以。NET 2.0 为目标。要将它与其他版本的框架一起使用,您需要稍微调整一下引用(即用其他版本的dll替换.net 2.0 dll)。

答案 1 :(得分:2)

错误显示名称实际上并没有帮助作者。

他没有在他对我的评论中引用的那篇文章中提及以下内容。

  

是的,我担心这是可以预料的。   安装.NET 3.5不会升级   你用Visual获得的编译器   Studio 2005.你必须得到VS 2008   如果你想使用新的C#或   VB.NET语法。我提到过这个   缺乏编译器支持   制品

     

当然,有一个区别   在理解之间的sytax之间   编译器和底层库   和语法expolits的类型。   您仍然可以完全访问Linq   技术,但你必须写   代码使用'标准'语法。

     

以上是上面的代码(加上一些代码   打印出来的附加代码   写的'长手'。这个   编译VS 2005.你需要给   你的项目参考   System.Core v3.5并导入   System.Linq命名空间。

     

int [] numbers = {5,4,1,3,9,8,6,   7,2,0};

     

// var numsPlusOne =来自数字的n   选择n + 1; IEnumerable的   numsPlusOne = Enumerable.Select(numbers,delegate(int n){return   n + 1; });

     

foreach(int nNew in numsPlusOne){   Console.WriteLine(n新); }

     

好的,我的博客显然正在导致   误解,我需要   仔细确定正在发生的事情   这里。人们需要弄清楚   他们之间的区别   不同的事情:

     

a).NET Framework框架是   主要由图书馆组成   预先编写的面向对象的代码   -i.e.,一个类库,或者更确切地说,是一组库。

     b)C#和VB.NET编译器这些   写成.Net程序集。该   新的编译器捆绑了   框架。

     c)C#和VB.NET编辑和   Visual中提供的编译支持   工作室。从Visual Studio开始   2008年,微软加强了这些   工具,以便您轻松定位   不同版本的框架。   这包括定位不同   C#和VB.NET的版本   编译器。

     

请注意以下几点:

     

•所有.NET 3.5代码均符合   版本的标准化定义   公共语言运行时的2.0。这包括的所有代码   类库,包括Linq和   甚至是编译器中的代码   组件。因此,Visual Studio 2005   可以访问任何公共成员   公共课在任何地方   图书馆,甚至可以达到保护   和私人成员通过反思。   这就是为什么你可以愉快地利用   Visual Studio 2005中的WCF 3.5。

     

•Visual Studio 2005早于.NET 3.5   因此它的代码编辑和   编译功能不针对或   支持编译器的版本   随.NET 3.5提供。因此,那里   不支持新语法支持   由最新的编译器,这就是原因   克里斯的代码不会编译(它使用的是   新对象初始化语法)。

     

编译器支持的语法是一个   事情。基础类和   其他类型的专业人士   像Linq这样的语法就是一些东西   不同。你没有这种能力   在旧的使用新的Linq语法   Visual Studio的版本。你做,   但是,有能力访问   底层类库   直接使用'传统'语法。

     

说完这一切,我可以   不负责任并指出这一点   微软确实发布了一些Linq CTP   Visual Studio 2005的工具。这个   仍然可以在:

     

http://www.microsoft.com/downloads/details.aspx?familyid=1e902c21-340c-4d13-9f04-70eb5e3dceea&displaylang=en

     

可以使用它   与仔细改变相结合   Microsoft.CSharp.targets引用于   您的MSBuild脚本包含在您的   项目文件以说服   Visual Studio 2005支持   最新的语法和编译器。一世   我不建议这样做   取决于CTP代码,可能不是   提供对语法的完全支持   在发布版本中受支持   Visual Studio 2008,有一定程度   黑带操纵的   Visual Studio的机制。我不接受   对人的任何问题负责   如果他们试图得到可能会遇到   这个工作!

换句话说,该文章的作者提出了什么是hack,ide不会检查你的语法,并且你将无法在VS05中实现任何C#3.5语法更改。