2

我正在将一个基于 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”,在我用真实数据类型修改这些行之后,代码编译并运行。

但是在项目程序集参考。我发现我的代码仍然是来自 .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 仅支持 .NET 2.0,但在这里似乎并非如此。所以我想我怎样才能确保我的应用程序只需要 .NET 2.0 框架。确保我只参考 .NET 2.0 及以下参考就足够了吗?

4

2 回答 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。

于 2012-07-26T20:00:15.543 回答
4

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

我会说 VS2010 也支持 2.0-only 项目。

于 2012-07-26T20:00:24.140 回答