.NET Framework 多目标概述

更新:2007 年 11 月

利用 Visual Studio 2008 的多目标功能,可以指定使用应用程序所需的 .NET Framework 版本。多目标的主要好处在于您可以使用 Visual Studio 2008 创建针对 .NET Framework 版本 2.0、3.0 或 3.5 的项目。这还使您可以继续开发在 Visual Studio 2005 中创建的项目,而无须添加新的 .NET Framework 依赖项。多目标功能有助于保证应用程序仅使用在指定 .NET Framework 版本中提供的功能。此外,多目标功能还可让您继续部署较早的应用程序,而无需您在部署包中添加新的 .NET Framework 版本。

多目标功能

早期版本的 Visual Studio 要求您安装最新的 .NET Framework 版本。例如,若要使用 Visual Studio 2005,您还必须安装 .NET Framework 2.0。新的 .NET Framework 版本可能提供其他功能,也可能向项目中添加新的 .NET Framework 依赖项。这些依赖项会阻止应用程序在之前所运行的系统上运行。如果对于应用程序需要向后兼容性,则这可能会有问题。

但是,利用 Visual Studio 2008 可以面向对项目所需的特定 .NET Framework 版本,方法是在位于“打开项目”和“新建项目”对话框右上角的“Framework 版本”框中选中该版本。

默认情况下,将 Visual Studio 2005 项目升级到 Visual Studio 2008 时,这些项目将继续面向 .NET Framework 2.0。根据需要,可以将目标由 .NET Framework 2.0 转换为 .NET Framework 3.0 或 .NET Framework 3.5,以便利用这些版本中的新功能。

新的 .NET Framework 版本

Visual Studio 2005 面向 .NET Framework 2.0。利用 Visual Studio 2008,可以面向另外的 .NET Framework 库:

  • **.NET Framework 3.0:**包括在Windows Vista 中。其中包含 Windows Presentation Foundation、Windows Communication Foundation 和 Windows Workflow Foundation。

  • **.NET Framework 3.5:**包括在 Visual Studio 2008 中。

  • **.NET Framework 3.5 SP1:**包含在 Visual Studio 2008 SP1 中。

**.NET Framework 客户端配置文件:**包含在 Visual Studio 2008 SP1 中。有关 .NET Framework Client Profile 的更多信息,请参见 .NET Framework 客户端配置文件

面向 .NET Framework 3.5 SP1

从 Visual Studio 2008 SP1 开始,可以将 .NET Framework 3.5 SP1 指定为应用程序目标。但是,“目标框架”下拉列表中并没有 .NET Framework 3.5 SP1。因此,对于要专门面向 .NET Framework 3.5 SP1 的应用程序,必须添加对新的 System.Data.Entity.dll 程序集的引用,或者执行以下操作之一来启用 Visual Studio 2008 SP1 中的 SP1 ClickOnce 功能:

  • 指定错误 URL。

  • 指定套件名称。

  • 创建桌面快捷方式。

  • 在“应用程序文件”对话框中从哈希中排除文件。

  • 在“签名”页上,清除“为 ClickOnce 清单签名”。

执行上述操作之一时,Visual Studio 2008 SP1 会自动面向 .NET Framework 3.5 SP1。有关更多信息,请参见如何:以特定的 .NET Framework 为目标 中的“面向 .NET Framework 3.5 版 SP1”。

说明:

安装 Visual Studio 2008 SP1 或 .NET Framework 3.5 SP1 后,只需要 .NET Framework 3.5 的现有应用程序将面向 .NET Framework 3.5。

创建和打开目标项目

“Framework 版本”组合框可让您指定项目的目标部署框架。根据指定的框架目标,筛选此视图中的可用模板列表。新的 Visual Studio 2008 项目将自动针对最新的 .NET Framework 版本(当前为 .NET Framework 3.5)以便提供所有最新的功能。

Visual Studio 2008 仅显示与当前目标 .NET Framework 版本相关的控件和其他项目项,使您不会无意中通过向项目中添加新的控件来向更新的 .NET Framework 版本中添加新的依赖项。

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

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

如果向直接或间接引用属于 .NET Framework 版本(此版本比项目当前面向的版本新)的系统程序集的用户创建程序集添加引用,则 Visual Studio 2008 将显示一个警告。如果忽略此警告,则请确保部署项目包括了所有必需的 .NET Framework 文件。

在 .NET Framework 3.5 项目中启用 LINQ

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

请参见

其他资源

MSBuild 概念