Birden çok hedef çerçeveye sahip projeler

Şunlar için geçerlidir:yes Mac noiçin Visual Studio Visual Studio

Mac için Visual Studio'da, bir Xamarin veya .NET Core projesini.NET Framework'ün çeşitli sürümlerinden birinde ve çeşitli sistem platformlarından herhangi birinde çalışacak şekilde yapılandırabilirsiniz. Örneğin, bir projeyi hem .NET Framework 4.6 hem de .NET Core 3.1 üzerinde çalışacak şekilde hedefleyebilirsiniz.

Hedef çerçeveler hakkında daha fazla bilgi için bkz . Hedef çerçeveler.

Not

Bu konu Mac için Visual Studio için geçerlidir. Windows üzerinde Visual Studio için bkz. Çerçeve hedeflemeye genel bakış.

Birden çok çerçeveyi hedefleme

Hedef çerçeveler proje dosyanızda belirtilir. Bu çerçeveleri projenize sağ tıklayıp Araçlar > Dosyayı Düzenle komutunu seçerek düzenleyebilirsiniz. Tek bir hedef çerçeve belirtildiğinde TargetFramework öğesini kullanın. Aşağıdaki konsol uygulaması proje dosyasında .NET Core 3.0'ı hedefleme gösterilmektedir:

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

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

</Project>

Birden çok hedef çerçeve ile çoğul TargetFrameworks öğesini kullanın:

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

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

Birden çok çerçeveyi hedefleme hakkında daha fazla bilgi edinin.

Çok hedefli bir projede kodla çalışma

Birden çok hedef çerçevesi olan bir projede C# dosyasını düzenlerken, düzenleyici deneyiminize yol göstermek için hangi hedef çerçeveyi kullanmak istediğinizi belirtebilirsiniz (örneğin, bu çerçeve tarafından desteklenmeyen bir API kullanıyorsanız uyarılar gösterir). Düzenleyici penceresinin sol üst köşesindeki Hedef Çerçeve seçicisini kullanarak hedef çerçeveyi değiştirebilirsiniz.

Using the target framework selector to change the target framework, located at the top of the editor window

Bazen uygulamanızın hedeflediğiniz platforma bağlı olarak farklı API'leri çağırmanız gerekir. Bunu yapmak için, belirli bir platform için kod derlemek üzere koşullu kod yazabilirsiniz:

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
    }
}

Kod yazarken IntelliSense otomatik tamamlama önerilerinde uyarılarla karşılaşırsınız ve uygulamanızın desteklediği hedef çerçevelerden herhangi biri için belirli API'lerin eksik olup olmadığını size bildirir.

A warning message shown in IntelliSense, an API will not work for a specified target framework. Example text: namespace System.Buffers, SharedUtils (netstandard2.0) - Not Available. You can use the navigation bar to switch context.

Ayrıca bkz.