global.json の概要global.json overview

この記事の対象: ✓ .NET Core 1.x SDK .NET Core 2.x SDKThis article applies to: ✓ .NET Core 1.x SDK .NET Core 2.x SDK

global.json ファイルを使うと、.NET Core CLI コマンドを実行するときに使う .NET Core SDK のバージョンを定義できます。The global.json file allows you to define which .NET Core SDK version is used when you run .NET Core CLI commands. .NET Core SDK の選択は、プロジェクトのターゲットであるランタイムの指定とは関係ありません。Selecting the .NET Core SDK is independent from specifying the runtime your project targets. .NET Core SDK のバージョンは、使われている .NET Core CLI ツールのバージョンを示します。The .NET Core SDK version indicates which versions of the .NET Core CLI tools are used. 通常は、最新バージョンのツールを使うので、global.json ファイルは必要ありません。In general, you want to use the latest version of the tools, so no global.json file is needed.

代わりにランタイムを指定する方法について詳しくは、「ターゲット フレームワーク」をご覧ください。For more information about specifying the runtime instead, see Target frameworks.

.NET Core SDK は、現在の作業ディレクトリ (プロジェクト ディレクトリと同じではない場合があります) 内、またはその親ディレクトリのいずれかで、global.json ファイルを探します。.NET Core SDK looks for a global.json file in the current working directory (which isn't necessarily the same as the project directory) or one of its parent directories.

global.json のスキーマglobal.json schema

SDKsdk

型:ObjectType: Object

選択する .NET Core SDK についての情報を指定します。Specifies information about the .NET Core SDK to select.

versionversion

型:StringType: String

使用する .NET Core SDK のバージョンです。The version of the .NET Core SDK to use.

このフィールドについては次のことに注意してください。Note that this field:

  • グロビングはサポートされていません。つまり、完全なバージョン番号を指定する必要があります。Doesn't have globbing support, that is, the full version number has to be specified.
  • バージョン範囲はサポートされていません。Doesn't support version ranges.

global.json ファイルの内容の例を次に示します。The following example shows the contents of a global.json file:

{
  "sdk": {
    "version": "2.2.100"
  }
}

global.json と .NET Core CLIglobal.json and the .NET Core CLI

global.json ファイルでバージョンを設定するには、使用可能なバージョンがわかっていると便利です。It's helpful to know which versions are available in order to set one in the global.json file. サポートされている使用可能な SDK の完全な一覧は、.NET Core のダウンロード ページで確認できます。You can find the full list of supported available SDKs at the Download .NET Core page. .NET Core 2.1 SDK 以降では、次のコマンドを実行して、お使いのコンピューターに既にインストールされている SDK のバージョンを確認できます。Starting with .NET Core 2.1 SDK, you can run the following command to verify which SDK versions are already installed on your machine:

dotnet --list-sdks

.NET Core SDK の別のバージョンをコンピューターにインストールするには、.NET Core のダウンロード ページにアクセスしてください。To install additional .NET Core SDK versions on your machine, visit the Download .NET Core page.

次の例のような dotnet new コマンドを実行することにより、新しい global.json ファイルを現在のディレクトリに作成できます。You can create a new the global.json file in the current directory by executing the dotnet new command, similar to the following example:

dotnet new globaljson --sdk-version 2.2.100

照合ルールMatching rules

注意

照合ルールは、.NET Core ランタイムの一部である apphost によって制御されます。The matching rules are governed by the apphost, which is part of the .NET Core runtime. 複数のランタイムがサイドバイサイドでインストールされている場合は、最新バージョンのホストが使用されます。The latest version of the host is used when you have multiple runtimes installed side-by-side.

.NET Core 2.0 以降では、使用する SDK のバージョンを決定するときに次のルールが適用されます。Starting with .NET Core 2.0, the following rules apply when determining which version of the SDK to use:

  • global.json ファイルが見つからない場合、または global.json で SDK のバージョンが指定されていない場合は、インストールされている最新バージョンの SDK が使用されます。If no global.json file is found or global.json doesn't specify an SDK version, the latest installed SDK version is used. SDK の最新バージョンはリリースまたはプレリリースのどちらでもよく、最も高いバージョン番号が採用されます。Latest SDK version can be either release or pre-release - the highest version number wins.
  • global.json で SDK のバージョンが指定されている場合:If global.json does specify an SDK version:
    • 指定されている SDK のバージョンがコンピューターで見つかった場合は、その厳密なバージョンが使用されます。If the specified SDK version is found on the machine, that exact version is used.
    • 指定されている SDK のバージョンがコンピューターで見つからない場合は、そのバージョンの SDK のパッチ バージョンでインストールされている最新のものが使用されます。If the specified SDK version can't be found on the machine, the latest installed SDK patch version of that version is used. インストールされている最新の SDK パッチ バージョンは、リリースまたはプレリリースのどちらでもよく、最も高いバージョン番号が採用されます。Latest installed SDK patch version can be either release or pre-release - the highest version number wins. .NET Core 2.1 以降では、指定されているパッチ バージョンより低いパッチ バージョンは、SDK の選択で無視されます。In .NET Core 2.1 and higher, the patch versions lower than the patch version specified are ignored in the SDK selection.
    • 指定されたバージョンの SDK および適切な SDK パッチ バージョンが見つからない場合は、エラーがスローされます。If the specified SDK version and an appropriate SDK patch version can't be found, an error is thrown.

現在、SDK のバージョンは次の部分で構成されます。The SDK version is currently composed of the following parts:

[.NET Core major version].[.NET Core minor version].[xyz][-optional preview name]

SDK バージョン 2.1.100 以降の番号の最後の部分 (xyz) の最初の桁 (x) は、.NET Core SDK の機能リリースを表します。The feature release of the .NET Core SDK is represented by the first digit (x) in the last portion of the number (xyz) for SDK versions 2.1.100 and higher. 一般に、リリース サイクルは .NET Core より .NET Core SDK の方が速くなります。In general, the .NET Core SDK has a faster release cycle than .NET Core.

パッチ バージョンは、SDK バージョン 2.1.100 以降の番号の最後の部分 (xyz) の最後の 2 桁 (yz) で定義されます。The patch version is defined by the last two digits (yz) in the last portion of the number (xyz) for SDK versions 2.1.100 and higher. たとえば、SDK のバージョンとして 2.1.300 を指定した場合、SDK の選択では 2.1.399 まで検索されますが、2.1.4002.1.300 のパッチ バージョンとして考慮されません。For example, if you specify 2.1.300 as the SDK version, SDK selection finds up to 2.1.399 but 2.1.400 isn't considered a patch version for 2.1.300.

.NET Core SDK のバージョン 2.1.100 から 2.1.201 までは、バージョン番号体系の移行の間にリリースされたため、xyz の表記を正しく処理していません。.NET Core SDK versions 2.1.100 through 2.1.201 were released during the transition between version number schemes and don't correctly handle the xyz notation. global.json ファイルでこれらのバージョンを指定する場合は、指定するバージョンがターゲット コンピューター上にあることを確認するよう強くお勧めします。We highly recommend if you specify these versions in the global.json file, that you ensure the specified versions are on the target machines.

.NET Core SDK 1.x では、バージョンを指定して、完全に一致するものが見つからない場合は、インストールされている最新バージョンの SDK が使われました。With .NET Core SDK 1.x, if you specified a version and no exact match was found, the latest installed SDK version was used. SDK の最新バージョンはリリースまたはプレリリースのどちらでもよく、最も高いバージョン番号が採用されます。Latest SDK version can be either release or pre-release - the highest version number wins.

ビルドの警告のトラブルシューティングTroubleshooting build warnings

警告

NET Core SDK のプレビュー バージョンを使用しています。You are working with a preview version of the .NET Core SDK. You can define the SDK version via a global.json file in the current project.You can define the SDK version via a global.json file in the current project. More at https://go.microsoft.com/fwlink/?linkid=869452 (.NET Core SDK のプレビュー バージョンを使用しています。現在のプロジェクトの global.json ファイルを使用して、SDK のバージョンを定義できます。詳しくは https://go.microsoft.com/fwlink/?linkid=869452 をご覧ください)More at https://go.microsoft.com/fwlink/?linkid=869452

この警告は、プレビュー バージョンの .NET Core SDK を使用してプロジェクトがコンパイルされていることを示します (「照合ルール」セクションを参照)。This warning indicates that your project is being compiled using a preview version of the .NET Core SDK, as explained in the Matching rules section. .NET Core SDK のバージョンには高品質の履歴とコミットメントがあります。.NET Core SDK versions have a history and commitment of being high quality. ただし、プレビュー バージョンを使用したくない場合は、global.json ファイルをプロジェクトの階層構造に追加して使用する SDK のバージョンを指定し、dotnet --list-sdks を使用してそのバージョンがコンピューターにインストールされていることを確認します。However, if you don't want to use a preview version, add a global.json file to your project hierarchy structure to specify which SDK version to use, and use dotnet --list-sdks to confirm that the version is installed on your machine. 新しいバージョンがリリースされたときに新しいバージョンを使用するには、global.json ファイルを削除するか、または新しいバージョンを使用するようにファイルを更新します。When a new version is released, to use the new version, either remove the global.json file or update it to use the newer version.

警告

スタートアップ プロジェクト '{startupProject}' で、フレームワーク '.NETCoreApp' バージョン '{targetFrameworkVersion}'Startup project '{startupProject}' targets framework '.NETCoreApp' version '{targetFrameworkVersion}'. がターゲットになっています。このバージョンの Entity Framework Core .NET コマンド ライン ツールは、バージョン 2.0 以降のみをサポートします。This version of the Entity Framework Core .NET Command-line Tools only supports version 2.0 or higher. 古いバージョンのツールの使用については、をご覧ください https://go.microsoft.com/fwlink/?linkid=871254For information on using older versions of the tools, see https://go.microsoft.com/fwlink/?linkid=871254

.NET Core 2.1 SDK (バージョン 2.1.300) 以降で、dotnet ef コマンドは SDK に含まれています。Starting with .NET Core 2.1 SDK (version 2.1.300), the dotnet ef command comes included in the SDK. この警告は、プロジェクトのターゲットが EF Core 1.0 または 1.1 であり、.NET Core 2.1 SDK 以降のバージョンと互換性がないことを示します。This warning indicates that your project targets EF Core 1.0 or 1.1, which isn't compatible with .NET Core 2.1 SDK and later versions. プロジェクトをコンパイルするには、.NET Core 2.0 SDK (バージョン 2.1.201) またはそれ以前のバージョンをご利用のコンピューター上にインストールし、global.json ファイルを使用して必要な SDK バージョンを定義します。To compile your project, install .NET Core 2.0 SDK (version 2.1.201) and earlier on your machine and define the desired SDK version using the global.json file. dotnet ef コマンドの詳細については、「EF Core .NET コマンドライン ツール」を参照してください。For more information about the dotnet ef command, see EF Core .NET Command-line Tools.

関連項目See also