具有多个目标框架的项目

适用于: 是Visual Studio for Mac 否Visual Studio

在 Visual Studio for Mac 中,可将 Xamarin 或 .NET Core 项目配置为在若干 .NET Framework 版本的任一版本和若干系统平台的任一平台上运行。 例如,可以将项目设定为在 .NET Framework 4.6 和 .NET Core 3.1 上运行。

有关目标框架的详细信息,请参阅目标框架

备注

本主题适用于 Visual Studio for Mac。 对于 Windows 上的 Visual Studio,请参阅框架定位概述

面向多个框架

目标框架在项目文件中指定,可通过右键单击项目并选择“工具”>“编辑文件”命令来编辑。 指定单个目标框架时,使用 TargetFramework 元素。 以下控制台应用项目文件演示了如何以 .NET Core 3.0 为目标:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>

</Project>

将复数形式的 TargetFrameworks 元素与多个目标框架一起使用:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>netstandard1.4;net40;net45</TargetFrameworks>
  </PropertyGroup>

详细了解如何面向多个框架

处理多目标项目中的代码

当你在具有多个目标框架的项目中编辑 C# 文件时,可以指定想要用于指导编辑器体验的目标框架(例如,如果使用该框架不支持的 API,则显示警告)。 可以使用编辑器窗口左上角的“目标框架”选择器来更改目标框架。

使用“目标框架”选择器更改位于编辑器窗口顶部的目标框架

有时,需要根据应用程序面向的平台调用不同 API。 为此,可以编写条件代码来编译特定平台的代码:

public class MyClass
{
    static void Main()
    {
#if NET40
        Console.WriteLine("Target framework: .NET Framework 4.0");
#elif NET45  
        Console.WriteLine("Target framework: .NET Framework 4.5");
#else
        Console.WriteLine("Target framework: .NET Standard 1.4");
#endif
    }
}

编写代码时,你将在 IntelliSense 自动完成建议中看到警告,从而知晓应用程序支持的任何目标框架是否缺少特定 API。

IntelliSense 中显示警告消息,API 将不适用于指定的目标框架。 示例文本:命名空间 System.Buffers、SharedUtils (netstandard2.0) - 不可用。 你可以使用导航栏切换上下文。

另请参阅