Visual Studio for Mac で複数のターゲット フレームワークを持つプロジェクト
重要
Visual Studio for Mac は、Microsoft の モダン ライフサイクル ポリシーに従って、2024 年 8 月 31 日に廃止される予定です。 引き続き Visual Studio for Mac を使用できますが、VS Code 用の新しい C# 開発キット拡張機能のプレビュー バージョンなど、Mac 上の開発者向けの他のいくつかのオプションがあります。
Visual Studio for Mac では、いくつかの .NET Framework バージョンのいずれか、またはいくつかのシステム プラットフォームのいずれかで実行できるように、Xamarin または .NET Core プロジェクトを構成できます。 たとえば、.NET Framework 4.6 と .NET Core 3.1 の両方で実行できるように、プロジェクトのターゲットを設定することができます。
ターゲット フレームワークの詳細については、「ターゲット フレームワーク」を参照してください。
Note
このトピックは、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 が不足していないかどうかを確認できます。