VS2005的.net版本在C#项目中使用了什么

VS2005的.net版本在C#项目中使用了什么,c#,.net,visual-studio,C#,.net,Visual Studio,我正在将一个基于VS2008的项目移植到VS2005,因为我们的次要.NET版本必须是2.0而不是3.5,我们的其余代码都是基于VS2005的。因此,我在.sln文件中修改了VisualStudio从2008年到2005年的版本 Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 因此,我能够将.sln加载到VS2005中。我有一些构建问题,主要是“var”,在我用实际数据类型修改这些行

我正在将一个基于VS2008的项目移植到VS2005,因为我们的次要.NET版本必须是2.0而不是3.5,我们的其余代码都是基于VS2005的。因此,我在.sln文件中修改了VisualStudio从2008年到2005年的版本

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
因此,我能够将.sln加载到VS2005中。我有一些构建问题,主要是“var”,在我用实际数据类型修改这些行之后,代码编译并运行

但是在项目集合参考中。我发现我的代码仍然是来自.NET 3.5的参考Linq:

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只支持.NET2.0,但在这里似乎不是这样。所以我想我该如何确保我的应用程序只需要.NET2.0框架。确保我只引用.NET 2.0及以下版本就足够了吗?

只要目标框架是.NET 2.0,并且您没有引用任何针对更高.NET framework版本的库,您的应用程序就可以在.NET 2.0上正常运行

也就是说,我相信VisualStudio2008支持多目标,所以您应该能够使用VS2008,但仍然将.NET2.0作为您的输出类型。此外,VS2010和VS2012RC还仅支持.NET 2.0项目


为了回答标题中的确切问题(为了方便那些通过标题找到此页面的人),Visual Studio 2005中默认使用的.NET版本是.NET v2.0。

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


我要说的是,VS2010还支持2.0版本的项目。

非常感谢。我们的代码的其余部分是建立在2005年的基础上的,所以如果可能的话,我想留在2005年。我想我仍然不明白为什么我可以在VS2005上添加3.5和4.0.NET引用。据我所知,没有理由.NET 2应用程序不能(或不应该)引用.NET 3.5或4.0类库。这样做会极大地改变您的部署需求,但它将避免您仅仅为了参考而将项目从.NET 2转换为.NET 3.5。碰巧你已经转换了你的项目。谢谢。正如我所说的,如果可能的话,我们仍然希望保持在2005年,因为代码的其余部分是在2005年。