Vue d’ensemble de global.jsonglobal.json overview

Cette rubrique s'applique à: ✓ .NET Core SDK 1.x .NET Core SDK 2.xThis topic applies to: ✓ .NET Core SDK 1.x .NET Core SDK 2.x

Le fichier global.json vous permet de définir la version du kit SDK .NET Core utilisée pendant l’exécution des commandes de l’interface CLI .NET Core.The global.json file allows you to define which .NET Core SDK version is used when you run .NET Core CLI commands. La sélection du kit SDK .NET Core est indépendante de la spécification du runtime ciblé par votre projet.Selecting the .NET Core SDK is independent from specifying the runtime your project targets. La version du kit SDK .NET Core détermine les versions des outils CLI .NET Core qui sont utilisées.The .NET Core SDK version indicates which versions of the .NET Core CLI tools are used. En règle générale, il est préférable d’utiliser la dernière version des outils. Dans ce cas, aucun fichier global.json n’est nécessaire.In general, you want to use the latest version of the tools, so no global.json file is needed.

Pour plus d’informations sur la spécification du runtime, consultez Versions cibles de .NET Framework.For more information about specifying the runtime instead, see Target frameworks.

Le kit SDK .NET Core recherche un fichier global.json dans le répertoire de travail actif (qui n’est pas nécessairement le même que le répertoire du projet) ou dans l’un de ses répertoires parents..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.

Schéma de global.jsonglobal.json schema

sdksdk

Type : objectType: Object

Spécifie des informations sur le kit SDK .NET Core à sélectionner.Specifies information about the .NET Core SDK to select.

versionversion

Type : chaîneType: String

Version du kit SDK .NET Core à utiliser.The version of the .NET Core SDK to use.

Notez que ce champ :Note that this field:

  • Ne prend pas en charge l’utilisation de caractères génériques. Autrement dit, il convient de spécifier le numéro complet de la version.Doesn't have globbing support, that is, the full version number has to be specified.
  • Ne prend pas en charge les plages de versions.Doesn't support version ranges.

L’exemple suivant montre le contenu d’un fichier global.json :The following example shows the contents of a global.json file:

{
  "sdk": {
    "version": "2.1.300"
  }
}

global.JSON et l’interface CLI .NET Coreglobal.json and the .NET Core CLI

Il est utile de connaître les versions disponibles pour en définir une dans le fichier global.json.It's helpful to know which versions are available in order to set one in the global.json file. Vous pouvez trouver la liste complète des kits SDK disponibles pris en charge sur le site de téléchargement .NET.You can find the full list of supported available SDKs at the .NET Downloads site. À partir du kit SDK .NET Core 2.1, vous pouvez exécuter la commande suivante pour savoir quelles versions du kit SDK sont déjà installées sur votre machine :Starting with .NET Core SDK 2.1, you can run the following command to verify which SDK versions are already installed on your machine:

dotnet --list-sdks

Pour installer des versions supplémentaires du kit SDK .NET Core sur votre machine, accédez au site de téléchargement .NET.To install additional .NET Core SDK versions on your machine, visit the .NET Downloads site.

Vous pouvez créer un fichier global.json dans le répertoire actif en exécutant la commande dotnet new, comme dans l’exemple suivant :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.1.300

Règles de correspondanceMatching rules

Note

Les règles de correspondance sont régies par apphost, qui fait partie du runtime .NET Core.The matching rules are governed by the apphost, which is part of the .NET Core runtime. La dernière version de l’hôte est utilisée quand plusieurs runtimes sont installés côte à côte.The latest version of the host is used when you have multiple runtimes installed side-by-side.

À partir de .NET Core 2.0, voici les règles qui s’appliquent pour déterminer quelle version du kit SDK utiliser :Starting with .NET Core 2.0, the following rules apply when determining which version of the SDK to use:

  • Si aucun fichier global.json n’est trouvé ou que global.json ne spécifie pas de version du kit SDK, la dernière version installée du kit SDK est utilisée.If no global.json file is found or global.json doesn't specify an SDK version, the latest installed SDK version is used. La dernière version du kit SDK peut être une version ou une préversion (le numéro de version le plus élevé l’emporte).Latest SDK version can be either release or pre-release - the highest version number wins.
  • Si la version du kit SDK n’est pas spécifiée dans global.json :If global.json does specify an SDK version:
    • Si la version spécifiée du kit SDK se trouve sur la machine, c’est cette même version qui est utilisée.If the specified SDK version is found on the machine, that exact version is used.
    • Si la version spécifiée du kit SDK est introuvable sur la machine, c’est la dernière version corrective installée du kit SDK qui est utilisée.If the specified SDK version can't be found on the machine, the latest installed SDK patch version of that version is used. La dernière version corrective installée du kit SDK peut être une version ou une préversion (le numéro de version le plus élevé l’emporte).Latest installed SDK patch version can be either release or pre-release - the highest version number wins. Dans .NET Core 2.1 et ultérieur, les versions correctives antérieures à la version corrective spécifiée sont ignorées dans la sélection du kit SDK.In .NET Core 2.1 and higher, the patch versions lower than the patch version specified are ignored in the SDK selection.
    • Dans le cas où ni la version spécifiée du kit SDK, ni une version corrective appropriée du kit SDK n’est trouvée, une erreur est générée.If the specified SDK version and an appropriate SDK patch version can't be found, an error is thrown.

La version du kit SDK se compose actuellement des éléments suivants :The SDK version is currently composed of the following parts:

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

La future version du kit SDK .NET Core est représentée par le premier chiffre (x) de la dernière partie du nombre (xyz) pour les versions 2.1.100 et ultérieures du kit 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. En règle générale, le cycle de lancement du kit SDK .NET Core est plus rapide que celui de .NET Core.In general, the .NET Core SDK has a faster release cycle than .NET Core.

La version corrective est définie par les deux derniers chiffres (yz) de la dernière partie du nombre (xyz) pour les versions 2.1.100 et ultérieures du kit SDK.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. Par exemple, si vous spécifiez la version 2.1.300 du kit SDK, le mécanisme de sélection du kit SDK trouve la version 2.1.399, mais la version 2.1.400 n’est pas considérée comme une version corrective de la version 2.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.

Les versions du kit SDK .NET Core comprises entre 2.1.100 et 2.1.201 ont été lancées pendant la période transitoire entre les modèles de numérotation des versions et ne gèrent pas correctement la notation 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. Si vous spécifiez ces versions dans le fichier global.json, nous vous recommandons vivement de vérifier que les versions spécifiées se trouvent sur les machines cibles.We highly recommend if you specify these versions in the global.json file, that you ensure the specified versions are on the target machines.

Pour le kit SDK .NET Core 1.x, si vous avez spécifié une version et qu’aucune correspondance exacte n’a été trouvée, la dernière version installée du kit SDK a été utilisée.With .NET Core SDK 1.x, if you specified a version and no exact match was found, the latest installed SDK version was used. La dernière version du kit SDK peut être une version ou une préversion (le numéro de version le plus élevé l’emporte).Latest SDK version can be either release or pre-release - the highest version number wins.

Résolutions des problèmes liés aux avertissements de buildTroubleshooting build warnings

Avertissement

Vous utilisez une préversion du kit SDK .NET Core.You are working with a preview version of the .NET Core SDK. Vous pouvez définir la version du kit SDK via un fichier global.json dans le projet actif.You can define the SDK version via a global.json file in the current project. Pour plus d’informations, consultez https://go.microsoft.com/fwlink/?linkid=869452More at https://go.microsoft.com/fwlink/?linkid=869452

Cet avertissement indique que votre projet est compilé à partir d’une préversion du kit SDK .NET Core, comme indiqué dans la section Règles de correspondance.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. Les versions du kit SDK .NET Core jouissent d’une image et d’un engagement de qualité..NET Core SDK versions have a history and commitment of being high quality. Cependant, si vous ne voulez pas utiliser de préversion, ajoutez un fichier global.json à la structure hiérarchique de votre projet pour spécifier la version du kit SDK à utiliser, puis utilisez dotnet --list-sdks pour vérifier que la version est installée sur votre machine.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. Pour utiliser une nouvelle version au moment où celle-ci est lancée, supprimez le fichier global.json ou mettez-le à jour pour utiliser la version plus récente.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.

Avertissement

Le projet de démarrage '{startupProject}' cible le framework '.NETCoreApp' version '{targetFrameworkVersion}'.Startup project '{startupProject}' targets framework '.NETCoreApp' version '{targetFrameworkVersion}'. Cette version des outils en ligne de commande Entity Framework Core .NET prend uniquement en charge la version 2.0 ou supérieure.This version of the Entity Framework Core .NET Command-line Tools only supports version 2.0 or higher. Pour plus d’informations sur l’utilisation d’anciennes versions des outils, consultez https://go.microsoft.com/fwlink/?linkid=871254.For information on using older versions of the tools, see https://go.microsoft.com/fwlink/?linkid=871254

À partir du kit SDK .NET Core 2.1 (v.Starting with .NET Core SDK 2.1 (v. 2.1.300), la commande dotnet ef est incluse dans le kit SDK.2.1.300), the dotnet ef command comes included in the SDK. Cet avertissement indique que votre projet cible EF Core 1.0 ou 1.1, qui n’est pas compatible avec le kit SDK .NET Core 2.1 et ultérieur.This warning indicates that your project targets EF Core 1.0 or 1.1, which isn't compatible with .NET Core SDK 2.1 and later versions. Pour compiler votre projet, installez le kit SDK .NET Core 2.0 (v.To compile your project, install .NET Core SDK 2.0 (v. 2.1.201) ou version antérieure sur votre machine et définissez la version du SDK à utiliser dans le fichier global.json.2.1.201) and earlier on your machine and define the desired SDK version using the global.json file. Pour plus d’informations sur la commande dotnet ef, consultez Outils en ligne de commande EF Core .NET.For more information about the dotnet ef command, see EF Core .NET Command-line Tools.

Voir aussiSee also