global.json: Übersichtglobal.json overview

Dieses Thema gilt für: ✓ .NET Core 1.x SDK .NET Core 2.x SDKThis topic applies to: ✓ .NET Core 1.x SDK .NET Core 2.x SDK

Mit der global.json-Datei können Sie definieren, welche .NET Core SDK-Version verwendet wird, wenn Sie .NET Core-CLI-Befehle ausführen.The global.json file allows you to define which .NET Core SDK version is used when you run .NET Core CLI commands. Die Auswahl der .NET Core SDK ist unabhängig von der Angabe der Laufzeit Ihrer Projektziele.Selecting the .NET Core SDK is independent from specifying the runtime your project targets. Die .NET Core SDK-Version gibt an, welche Versionen der .NET Core-CLI-Tools verwendet werden.The .NET Core SDK version indicates which versions of the .NET Core CLI tools are used. Wenn Sie die neueste Version der Tools verwenden möchten, wird in der Regel keine global.json-Datei benötigt.In general, you want to use the latest version of the tools, so no global.json file is needed.

Weitere Informationen zum Angeben der Laufzeit finden Sie unter Zielframeworks.For more information about specifying the runtime instead, see Target frameworks.

.NET Core SDK sucht im aktuellen Arbeitsverzeichnis (das nicht dem Projektverzeichnis entsprechen muss) oder in einem übergeordneten Verzeichnis nach einer global.json-Datei..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-Schemaglobal.json schema

SDKsdk

Typ: ObjectType: Object

Gibt Informationen zum auszuwählenden .NET Core SDK an.Specifies information about the .NET Core SDK to select.

Versionversion

Typ: ZeichenfolgeType: String

Die Version des zu verwendenden .NET Core SDK.The version of the .NET Core SDK to use.

Beachten Sie, dass dieses Feld:Note that this field:

  • Keine Platzhalter unterstützt, d. h. die vollständige Versionsnummer muss angegeben werdenDoesn't have globbing support, that is, the full version number has to be specified.
  • Keine Versionsbereiche unterstütztDoesn't support version ranges.

Das folgende Beispiel zeigt den Inhalt einer global.json-Datei an.The following example shows the contents of a global.json file:

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

global.json und die .NET Core-CLIglobal.json and the .NET Core CLI

Es ist nützlich zu wissen, welche Versionen verfügbar sind, um in der global.json-Datei eine Version festzulegen.It's helpful to know which versions are available in order to set one in the global.json file. Eine vollständige Liste der unterstützten und verfügbaren SDKs finden Sie auf der Website mit den .NET-Downloads.You can find the full list of supported available SDKs at the .NET Downloads site. Ab .NET Core 2.1 SDK können Sie den folgenden Befehl ausführen, um zu überprüfen, welche SDK-Versionen bereits auf Ihrem Computer installiert sind: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

Um auf Ihrem Computer zusätzliche .NET Core SDK-Versionen zu installieren, besuchen Sie die Website mit den .NET-Downloads.To install additional .NET Core SDK versions on your machine, visit the .NET Downloads site.

Sie können im aktuellen Verzeichnis eine neue global.json-Datei erstellen, indem Sie den Befehl dotnet new ausführen, wie im folgenden Beispiel: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

AbgleichsregelnMatching rules

Hinweis

Die Abgleichsregeln werden vom App-Host bestimmt, der der .NET Core-Laufzeit unterliegt.The matching rules are governed by the apphost, which is part of the .NET Core runtime. Wenn Sie mehrere Laufzeiten nebeneinander installiert haben, wird die neueste Version des Hosts verwendet.The latest version of the host is used when you have multiple runtimes installed side-by-side.

Ab .NET Core 2.0 legen die folgenden Regeln fest, welche SDK-Version verwendet wird:Starting with .NET Core 2.0, the following rules apply when determining which version of the SDK to use:

  • Wenn keine global.json-Datei gefunden wird oder global.json keine SDK-Version angibt, wird die neueste installierte SDK-Version verwendet.If no global.json file is found or global.json doesn't specify an SDK version, the latest installed SDK version is used. Die neueste SDK-Version kann ein Release oder eine Vorabversion sein, es gilt die höchste Versionsnummer.Latest SDK version can be either release or pre-release - the highest version number wins.
  • Wenn global.json eine SDK-Version angibt:If global.json does specify an SDK version:
    • Wenn die angegebene SDK-Version auf dem Computer gefunden wird, wird genaue diese Version verwendet.If the specified SDK version is found on the machine, that exact version is used.
    • Wenn die angegebene SDK-Version auf dem Computer nicht gefunden wird, wird die neueste installierte SDK-Patchversion der Version verwendet.If the specified SDK version can't be found on the machine, the latest installed SDK patch version of that version is used. Die neueste installierte SDK-Patchversion kann ein Release oder eine Vorabversion sein, es gilt die höchste Versionsnummer.Latest installed SDK patch version can be either release or pre-release - the highest version number wins. In .NET Core 2.1 und höher werden die Patchversionen, die niedriger als die angegebene Patchversion sind, bei der SDK-Auswahl ignoriert.In .NET Core 2.1 and higher, the patch versions lower than the patch version specified are ignored in the SDK selection.
    • Wenn die angegebene SDK-Version und eine entsprechende SDK-Patchversion nicht gefunden werden, wird ein Fehler ausgelöst.If the specified SDK version and an appropriate SDK patch version can't be found, an error is thrown.

Die SDK-Version hat zurzeit folgende Bestandteile:The SDK version is currently composed of the following parts:

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

Die Funktionsfreigabe von .NET Core SDK wird für SDK-Versionen ab 2.1.100 von der ersten Ziffer (x) im letzten Teil der Nummer (xyz) dargestellt.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. Generell hat .NET Core SDK einen schnelleren Releasezyklus als .NET Core.In general, the .NET Core SDK has a faster release cycle than .NET Core.

Die Patchversion wird für SDK-Versionen ab 2.1.100 von den letzten beiden Ziffern (yz) im letzten Teil der Nummer (xyz) definiert.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. Wenn Sie beispielsweise 2.1.300 als SDK-Version angeben, werden für die SDK-Auswahl Versionen bis 2.1.399 berücksichtigt, allerdings wird 2.1.400 nicht als Patchversion von 2.1.300 betrachtet.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-Versionen 2.1.100 bis 2.1.201 wurden beim Übergang zwischen Versionsnummerschemen freigegeben und halten die xyz-Notation nicht ordnungsgemäß ein..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. Falls Sie diese Versionen in der global.json-Datei angeben, wird dringend empfohlen sicherzustellen, dass sich die angegebenen Versionen auf den Zielcomputern befinden.We highly recommend if you specify these versions in the global.json file, that you ensure the specified versions are on the target machines.

Mit .NET Core SDK 1.x wurde die neueste installierte SDK-Version verwendet, wenn Sie eine Version angegeben haben und keine genaue Übereinstimmung gefunden wurde.With .NET Core SDK 1.x, if you specified a version and no exact match was found, the latest installed SDK version was used. Die neueste SDK-Version kann ein Release oder eine Vorabversion sein, es gilt die höchste Versionsnummer.Latest SDK version can be either release or pre-release - the highest version number wins.

Problembehandlung bei BuildwarnungenTroubleshooting build warnings

Warnung

Sie verwenden eine Vorschauversion von .NET Core SDK.You are working with a preview version of the .NET Core SDK. Sie können die SDK-Version über eine global.json-Datei im aktuellen Projekt definieren.You can define the SDK version via a global.json file in the current project. Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=869452.More at https://go.microsoft.com/fwlink/?linkid=869452

Diese Warnung weist darauf hin, dass das Projekt mit einer .NET Core SDK-Vorschauversion kompiliert wird, wie im Abschnitt Abgleichsregeln beschrieben.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-Versionen haben einen Verlauf und weisen eine hohe Qualität auf..NET Core SDK versions have a history and commitment of being high quality. Wenn Sie jedoch keine Vorschauversion verwenden möchten, fügen Sie Ihrer Projekthierarchiestruktur eine global.json-Datei hinzu, um die zu verwendende SDK-Version anzugeben, und bestätigen Sie mithilfe von dotnet --list-sdks, dass die Version auf Ihrem Computer installiert ist.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. Wenn eine neue Version verfügbar ist, entfernen Sie entweder die global.json-Datei oder aktualisieren Sie sie, um die neuere Version zu verwenden.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.

Warnung

Das Startprojekt „{startupProject}“ gibt Version „{targetFrameworkVersion}“ von Framework „.NETCoreApp“ als Ziel an.Startup project '{startupProject}' targets framework '.NETCoreApp' version '{targetFrameworkVersion}'. Diese Version der Entity Framework Core .NET-Befehlszeilentools unterstützt nur Version 2.0 oder höher.This version of the Entity Framework Core .NET Command-line Tools only supports version 2.0 or higher. Weitere Informationen zur Verwendung älterer Toolversionen finden Sie unter https://go.microsoft.com/fwlink/?linkid=871254.For information on using older versions of the tools, see https://go.microsoft.com/fwlink/?linkid=871254

Ab .NET Core 2.1 SDK (Version 2.1.300) ist der Befehl dotnet ef im SDK enthalten.Starting with .NET Core 2.1 SDK (version 2.1.300), the dotnet ef command comes included in the SDK. Diese Warnung weist darauf hin, dass das Projekt EF Core 1.0 oder 1.1 als Ziel angibt, das nicht mit .NET Core 2.1 SDK oder höher kompatibel ist.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. Um Ihr Projekt zu kompilieren, installieren Sie das .NET Core 2.0 SDK (Version 2.1.201) und früher auf Ihrem Computer, und legen Sie mithilfe der Datei global.json die gewünschte SDK-Version fest.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. Weitere Informationen zu dem Befehl dotnet ef finden Sie unter EF Core .NET-Befehlszeilentools.For more information about the dotnet ef command, see EF Core .NET Command-line Tools.

Siehe auchSee also