2012-07-26 48 views
2

我将VS2008上构建的项目移植到VS2005,因为我们的小.NET版本为2.0而不是3.5,其余代码是在VS2005上构建的。所以我修改从2008年的Visual Studio版本,到2005年在.sln文件什么.net版VS2005用于C#项目

Microsoft Visual Studio Solution File, Format Version 9.00 
# Visual Studio 2005 

所以我能够到的.sln加载到VS2005。我有一些建设问题,主要是“var”,并且在我用真实数据类型修改这些行之后,代码将编译并运行。

但是在项目组装参考。我发现我的代码仍引用的LINQ是从.NET 3.5:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\System.Xml.Linq.dll 

当我打开的对话框中添加新的参考,我可以看到的是,.NET版本2.0,3.5和4.0连(尽管在大多数情况下CLR运行时版本是2.0.50727,有时是1.x,有时是4.0,但Linq的运行时版本是2.0.50727)。

我认为VS2005只支持.NET 2.0,这似乎不是这种情况下。所以我想如何确保我的应用程序只需要.NET 2.0框架。足以确保我只引用.NET 2.0和以下引用?

回答

4

只要目标框架是.NET 2.0 你不引用目标更高的.NET framework版本的库,您的应用程序应该运行在.NET 2.0就好了。这就是说,我相信Visual Studio 2008支持多目标定位,所以你应该可以使用VS2008,但仍然将.NET 2.0作为你的输出类型。此外,VS2010和VS2012RC也支持仅限.NET 2.0项目。

要回答标题中的确切问题(对于按标题查找此页面的用户的好处),Visual Studio 2005中默认使用的.NET版本是.NET v2.0。

+0

非常感谢。我们其余的代码建立在2005年,所以如果可能的话,我想留在2005年。我想我仍然不明白为什么这些3.5和4.0 .NET参考可以在VS2005上添加 – windfly2006 2012-07-26 20:18:26

+0

据我所知,.NET 2应用程序无法(或不应该)引用a。 NET 3.5或4.0类库。这样做可以改变你的部署需求,但它可以帮助你避免将项目从.NET 2转换到.NET 3.5,以便作为参考。恰好你已经转换了你的项目。 – Nate 2012-07-26 20:43:06

+0

感谢您的解释。 – windfly2006 2012-07-27 18:14:11

4

你仍然可以使用VS2008。 VS2008完全支持2.0专用项目(只需更改项目设置)。在2.0模式下,VS将禁用任何3.0和3.5程序集以及依赖于3.0或3.5库类的任何C#语言功能(例如扩展方法,但有一种解决方法可以让2.0版使用这些方法)。

我会说VS2010也支持2.0专用的项目。

+0

谢谢。正如我所说,如果可能的话,我们仍然希望保持在2005年,因为其余代码是在2005年。 – windfly2006 2012-07-26 20:18:53

相关问题