VS2005用哪个.NET版本开发C#项目?

3

我正在将一个在VS2008上构建的项目移植到VS2005,因为我们的.NET版本必须是2.0而不是3.5,而我们的其余代码是在VS2005上构建的。所以我在.sln文件中将Visual Studio版本从2008修改为2005。

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及以下的引用是否足够?
2个回答

5
只要目标框架是.NET 2.0,而且您没有引用任何针对较高.NET框架版本的库,您的应用程序就应该在.NET 2.0上正常运行。
话虽如此,我相信Visual Studio 2008支持多目标,因此您应该能够使用VS2008,但仍将.NET 2.0作为输出类型。此外,VS2010和VS2012RC还支持.NET 2.0项目。
为了回答标题中的确切问题(为那些通过标题找到此页面的人提供方便),Visual Studio 2005默认使用的.NET版本是.NET v2.0。

非常感谢。我们的其余代码都是基于2005构建的,因此如果可能的话,我想留在2005上。我猜我仍然困惑为什么那些3.5和4.0 .NET引用可供我在VS2005中添加。 - windfly2006
据我所知,没有理由一个.NET 2应用程序不能(或不应该)引用.NET 3.5或4.0类库。这样做显然会改变您的部署要求,但它将使您免于将项目从.NET 2转换为.NET 3.5,只是为了进行引用。碰巧你已经转换了你的项目。 - Nate

4
您仍然可以使用VS2008。VS2008完全支持2.0-only项目(只需更改项目设置)。在2.0模式下,VS将停用任何3.0和3.5程序集以及任何依赖于3.0或3.5库类的C#语言功能(例如扩展方法),但有一种解决方法可以使这些方法与2.0正常工作。我会说,VS2010也支持2.0-only项目。

谢谢。正如我所说,如果可能的话,我们仍然希望保持在2005年,因为代码的其余部分也是在2005年。 - windfly2006

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接