Visual Studio 多目标概述

利用 Visual Studio 的多目标功能,可以指定应用程序所需的 .NET Framework 特定版本或配置文件。 多目标功能的主要好处在于,可以使用当前版本的 Visual Studio 来创建和开发针对早期版本的 .NET Framework 的项目。 例如,您可以继续开发在 Visual Studio 2005 和 Visual Studio 2008 中创建的项目,而无需添加新的 .NET Framework 依赖项。 多目标功能有助于保证应用程序仅使用在指定 .NET Framework 版本中提供的功能。 此外,多目标功能还可让您继续部署较早的应用程序,而无需您在部署包中添加新的 .NET Framework 版本。

提示

Visual Studio 中的多目标功能不保证应用程序会在多个版本的 .NET Framework 中运行。 您可以使用多目标功能来为您的应用程序选择其 .NET Framework 目标版本。 不过,您仍必须对应用程序进行测试,以确保其能够针对所选版本运行。 Visual Studio 中的多目标仅适用于 .NET Framework 2.0 和更高版本。

.NET Framework 版本和配置文件

Visual Studio 2010 仅包含 .NET Framework 4。 若要面向早期版本的 .NET Framework,则必须安装 .NET Framework 3.5 Service Pack 1 (SP1)。 .NET Framework 3.5 SP1 包含 .NET Framework 2.0、.NET Framework 3.0 和 .NET Framework 3.5 SP1。 若要下载并安装 .NET Framework 3.5 SP1,请参见 Microsoft 下载中心网站上的 Microsoft .NET Framework 3.5 Service Pack 1

.NET Framework 配置文件是 .NET Framework 的子集,它提供一组有限的库和功能。 可用于创建客户端应用程序的客户端配置文件就是 Framework 配置文件的一个示例。 有关客户端配置文件的更多信息,请参见 .NET Framework Client Profile

在创建项目时,可以通过在**“新建项目”**对话框中选择 .NET Framework 目标版本或配置文件来指定它。 根据选定内容对可用项目模板列表进行筛选。

提示

在 Visual Studio 速成版中,不能通过“新建项目”对话框调用多目标功能。

更改 .NET Framework 目标版本

对于现有项目,可以通过修改项目属性来更改 .NET Framework 的目标版本或配置文件。 有关更多信息,请参见“项目设计器”->“应用程序”页 (C#)“高级编译器设置”对话框 (Visual Basic)

更改 .NET Framework 目标版本时,Visual Studio 并不会总是自动更改所引用程序集的版本。 可能还需要进行某些手动更改。 有关更多信息,请参见.NET Framework 目标错误疑难解答

多目标功能

Visual Studio 多目标功能包含下列功能:

  • 当您在 Visual Studio 中打开针对 .NET Framework 早期版本的项目时,Visual Studio 可以自动将项目升级或者让其继续针对早期版本。

  • 当您创建新项目时,可以指定要面向的 .NET Framework 版本。

  • 您可以更改现有项目所面向的 .NET Framework 版本。

  • 可以在同一解决方案的不同项目中针对不同的 .NET Framework 版本。

  • 当您更改项目所面向的 .NET Framework 版本时,Visual Studio 会对引用和配置文件进行任何所需的更改。

此外,当您处理针对 .NET Framework 早期版本的项目时,Visual Studio 会动态地在开发环境中进行如下更改:

  • 筛选**“新建项目”对话框、“添加新项”对话框、“添加新引用”对话框和“添加服务引用”**对话框中的项,以便忽略只能在更高版本中使用的选项。

  • 在**“工具箱”**中筛选自定义控件,以移除只能在更高版本中使用的控件,并在多个控件可用于目标版本时显示最新版本。

  • 它会对 IntelliSense 进行筛选,以忽略仅在后期版本中可用的语言功能。

  • 筛选**“属性”**窗口中的属性,以忽略只能在更高版本中使用的属性。

  • 筛选菜单选项以忽略只能在更高版本中使用的选项。

  • 它会使用相应版本的编译器以及相应的编译器选项进行编译和生成。

开发与多个版本的 .NET Framework 兼容的应用程序

若要开发与多个版本的 .NET Framework 兼容的应用程序,建议您针对较低版本的 .NET Framework 开发应用程序,然后针对较高版本的 .NET Framework 进行生成。 例如,可以针对 .NET Framework 3.5 开发应用程序,然后针对 .NET Framework 4 进行生成。

解析系统和用户程序集引用

**“添加引用”**对话框会禁用不适合 .NET Framework 的目标版本的系统程序集。 (系统程序集是作为 .NET Framework 版本一部分的 .dll 文件。)这将有助于您避免向未在目标版本中的程序集添加引用。 如果修改项目文件以使其包括属于 .NET Framework 版本(此版本比项目当前面向的版本新)的引用,则将无法解析这种引用。此外,也无法添加或使用依赖此引用的控件。 可以通过将项目的 .NET Framework 目标转换为包含此引用的目标来解析此引用。您可以在项目的属性页上完成此操作。 有关更多信息,请参见使用项目设计器管理项目属性

启用 LINQ

将项目移动到 .NET Framework 3.5 或更高版本时,会自动添加对 System.Core 的引用和对 System.Linq 的项目级导入(仅 Visual Basic 中)。 如果要使用 LINQ 功能,还必须打开 Option Infer(仅 Visual Basic 中)。 在将 .NET Framework 的目标版本更改为 3.0 或 2.0 时,将自动移除相关引用和导入。 有关更多信息,请参见如何:创建 LINQ 项目

请参见

概念

针对 ASP.NET Web 项目的 .NET Framework 多目标功能

其他资源

!!!测试开始[MSBuild Concepts]测试结束!!!