Vue d’ensemble de global.jsonglobal.json overview

Cet article s’applique à : ✔️ le kit de développement logiciel (SDK) .net Core 2,0 et versions ultérieuresThis article applies to: ✔️ .NET Core 2.0 SDK and later versions

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 de kit SDK .NET Core indique les versions du CLI .NET Core à utiliser.The .NET Core SDK version indicates which versions of the .NET Core CLI is used.

En général, vous souhaitez utiliser la dernière version des outils du kit de développement logiciel (SDK), de sorte qu’aucun global.js n’est nécessaire.In general, you want to use the latest version of the SDK tools, so no global.json file is needed. Dans certains scénarios avancés, vous souhaiterez peut-être contrôler la version des outils du kit de développement logiciel (SDK), et cet article explique comment procéder.In some advanced scenarios, you might want to control the version of the SDK tools, and this article explains how to do this.

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

Entrez : objectType: object

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

Versionversion

  • Entrez : stringType: string

  • Disponible depuis : .NET Core 1,0 SDK.Available since: .NET Core 1.0 SDK.

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

Ce champ :This field:

  • Ne prend pas en charge les caractères génériques, autrement dit, le numéro de version complet doit être spécifié.Doesn't have wildcard 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.

allowPrereleaseallowPrerelease

  • Entrez : booleanType: boolean

  • Disponible depuis : .NET Core 3,0 SDK.Available since: .NET Core 3.0 SDK.

Indique si le programme de résolution du SDK doit prendre en compte les versions préliminaires lors de la sélection de la version du kit de développement logiciel à utiliser.Indicates whether the SDK resolver should consider prerelease versions when selecting the SDK version to use.

Si vous ne définissez pas cette valeur explicitement, la valeur par défaut varie selon que vous exécutez à partir de Visual Studio :If you don't set this value explicitly, the default value depends on whether you're running from Visual Studio:

  • Si vous n’êtes pas dans Visual Studio, la valeur par défaut est true .If you're not in Visual Studio, the default value is true.
  • Si vous êtes dans Visual Studio, il utilise l’état de préversion demandé.If you are in Visual Studio, it uses the prerelease status requested. Autrement dit, si vous utilisez une préversion de Visual Studio ou que vous définissez l’option utiliser des aperçus de l’kit SDK .net Core (sous Outils > options > environnement > aperçu des fonctionnalités), la valeur par défaut est true ; sinon, false .That is, if you're using a Preview version of Visual Studio or you set the Use previews of the .NET Core SDK option (under Tools > Options > Environment > Preview Features), the default value is true; otherwise, false.

Restauration par progressionrollForward

  • Entrez : stringType: string

  • Disponible depuis : .NET Core 3,0 SDK.Available since: .NET Core 3.0 SDK.

Stratégie de restauration par progression à utiliser lors de la sélection d’une version du kit de développement logiciel (SDK) en tant que solution de secours quand une version spécifique du kit de développement logiciel est manquante ou en tant que directive pour utiliser une version plus récente.The roll-forward policy to use when selecting an SDK version, either as a fallback when a specific SDK version is missing or as a directive to use a higher version. Une version doit être spécifiée avec une rollForward valeur, à moins que vous ne l’affectiez à latestMajor .A version must be specified with a rollForward value, unless you're setting it to latestMajor.

Pour comprendre les stratégies disponibles et leur comportement, considérez les définitions suivantes pour une version du kit de développement logiciel (SDK) au format x.y.znn :To understand the available policies and their behavior, consider the following definitions for an SDK version in the format x.y.znn:

  • x est la version principale.x is the major version.
  • y est la version mineure.y is the minor version.
  • z est la plage de fonctionnalités.z is the feature band.
  • nn est la version du correctif.nn is the patch version.

Le tableau suivant indique les valeurs possibles pour la rollForward clé :The following table shows the possible values for the rollForward key:

ValeurValue ComportementBehavior
patch Utilise la version spécifiée.Uses the specified version.
S’il est introuvable, restaure le niveau de correctif le plus récent.If not found, rolls forward to the latest patch level.
S’il est introuvable, échoue.If not found, fails.

Cette valeur est le comportement hérité des versions antérieures du kit de développement logiciel (SDK).This value is the legacy behavior from the earlier versions of the SDK.
feature Utilise le niveau de correctif le plus récent pour la plage de fonctionnalités, mineure et principale spécifiée.Uses the latest patch level for the specified major, minor, and feature band.
S’il est introuvable, restaure la bande de fonctionnalités supérieure suivante au sein du même niveau principal/secondaire et utilise le niveau de correctif le plus récent pour cette bande de fonctionnalités.If not found, rolls forward to the next higher feature band within the same major/minor and uses the latest patch level for that feature band.
S’il est introuvable, échoue.If not found, fails.
minor Utilise le niveau de correctif le plus récent pour la plage de fonctionnalités, mineure et principale spécifiée.Uses the latest patch level for the specified major, minor, and feature band.
S’il est introuvable, restaure la bande de fonctionnalités supérieure suivante au sein de la même version majeure/mineure et utilise le niveau de correctif le plus récent pour cette bande de fonctionnalités.If not found, rolls forward to the next higher feature band within the same major/minor version and uses the latest patch level for that feature band.
S’il est introuvable, restaure par progression jusqu’à la bande de fonctionnalités et mineure supérieure suivante au sein du même principal et utilise le niveau de correctif le plus récent pour cette bande de fonctionnalités.If not found, rolls forward to the next higher minor and feature band within the same major and uses the latest patch level for that feature band.
S’il est introuvable, échoue.If not found, fails.
major Utilise le niveau de correctif le plus récent pour la plage de fonctionnalités, mineure et principale spécifiée.Uses the latest patch level for the specified major, minor, and feature band.
S’il est introuvable, restaure la bande de fonctionnalités supérieure suivante au sein de la même version majeure/mineure et utilise le niveau de correctif le plus récent pour cette bande de fonctionnalités.If not found, rolls forward to the next higher feature band within the same major/minor version and uses the latest patch level for that feature band.
S’il est introuvable, restaure par progression jusqu’à la bande de fonctionnalités et mineure supérieure suivante au sein du même principal et utilise le niveau de correctif le plus récent pour cette bande de fonctionnalités.If not found, rolls forward to the next higher minor and feature band within the same major and uses the latest patch level for that feature band.
S’il est introuvable, restaure les versions ultérieures principales, secondaires et de fonctionnalités suivantes et utilise le niveau de correctif le plus récent pour cette bande de fonctionnalités.If not found, rolls forward to the next higher major, minor, and feature band and uses the latest patch level for that feature band.
S’il est introuvable, échoue.If not found, fails.
latestPatch Utilise le dernier niveau de correctif installé qui correspond à la bande principale, mineure et de fonctionnalité demandée avec un niveau de correctif et qui est supérieur ou égal à la valeur spécifiée.Uses the latest installed patch level that matches the requested major, minor, and feature band with a patch level and that is greater or equal than the specified value.
S’il est introuvable, échoue.If not found, fails.
latestFeature Utilise la bande de fonctionnalités et le niveau de correctifs les plus élevés qui correspondent aux principaux et mineurs demandés, avec une bande de fonctionnalités et un niveau de correctif supérieur ou égal à la valeur spécifiée.Uses the highest installed feature band and patch level that matches the requested major and minor with a feature band and patch level that is greater or equal than the specified value.
S’il est introuvable, échoue.If not found, fails.
latestMinor Utilise le niveau le plus élevé, la bande de fonctionnalités et le niveau de correctif logiciel les plus élevés qui correspond à la valeur principale demandée, avec un niveau de plage de fonctionnalités et de correctifs supérieur ou égal à la valeur spécifiée.Uses the highest installed minor, feature band, and patch level that matches the requested major with a minor, feature band, and patch level that is greater or equal than the specified value.
S’il est introuvable, échoue.If not found, fails.
latestMajor Utilise le kit SDK .NET Core installé le plus élevé avec une version supérieure ou égale à la valeur spécifiée.Uses the highest installed .NET Core SDK with a version that is greater or equal than the specified value.
S’il est introuvable, échec.If not found, fail.
disable Ne restaure pas par progression.Doesn't roll forward. Correspondance exacte requise.Exact match required.

MSBuild-SDKmsbuild-sdks

Entrez : objectType: object

Permet de contrôler la version du kit de développement logiciel (SDK) de projet dans un emplacement plutôt que dans chaque projet individuel.Lets you control the project SDK version in one place rather than in each individual project. Pour plus d’informations, consultez Comment les kits de développement logiciel (SDK) de projet sont résolus.For more information, see How project SDKs are resolved.

ExemplesExamples

L’exemple suivant montre comment ne pas utiliser les versions préliminaires :The following example shows how to not use prerelease versions:

{
  "sdk": {
    "allowPrerelease": false
  }
}

L’exemple suivant montre comment utiliser la version la plus récente installée qui est supérieure ou égale à la version spécifiée.The following example shows how to use the highest version installed that is greater or equal than the specified version. Le code JSON indiqué interdit toute version du kit de développement logiciel (SDK) antérieure à 2.2.200 et autorise 2.2.200 ou toute version ultérieure, y compris 3.0.xxx et 3.1.xxx.The JSON shown disallows any SDK version earlier than 2.2.200 and allows 2.2.200 or any later version, including 3.0.xxx and 3.1.xxx.

{
  "sdk": {
    "version": "2.2.200",
    "rollForward": "latestMajor"
  }
}

L’exemple suivant montre comment utiliser la version spécifiée exacte :The following example shows how to use the exact specified version:

{
  "sdk": {
    "version": "3.1.100",
    "rollForward": "disable"
  }
}

L’exemple suivant montre comment utiliser la dernière plage de fonctionnalités et la dernière version de correctif installées d’une version majeure et mineure spécifique.The following example shows how to use the latest feature band and patch version installed of a specific major and minor version. Le code JSON indiqué n’autorise aucune version du kit de développement logiciel (SDK) antérieure à 3.1.102 et autorise 3.1.102 ou toute version ultérieure de 3.1.xxx, telle que 3.1.103 ou 3.1.200.The JSON shown disallows any SDK version earlier than 3.1.102 and allows 3.1.102 or any later 3.1.xxx version, such as 3.1.103 or 3.1.200.

{
  "sdk": {
    "version": "3.1.102",
    "rollForward": "latestFeature"
  }
}

L’exemple suivant montre comment utiliser la version de correctif la plus élevée installée pour une version spécifique.The following example shows how to use the highest patch version installed of a specific version. Le code JSON indiqué interdit toute version du SDK antérieure à 3.1.102 et autorise 3.1.102 ou toute version ultérieure 3.1.1 XX, telle que 3.1.103 ou 3.1.199.The JSON shown disallows any SDK version earlier than 3.1.102 and allows 3.1.102 or any later 3.1.1xx version, such as 3.1.103 or 3.1.199.

{
  "sdk": {
    "version": "3.1.102",
    "rollForward": "latestPatch"
  }
}

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

Il est utile de savoir quelles versions du kit de développement logiciel (SDK) sont installées sur votre ordinateur pour en définir un dans le global.js fichier.It's helpful to know which SDK versions are installed on your machine to set one in the global.json file. Pour plus d’informations sur la façon de procéder, consultez Comment vérifier que .net Core est déjà installé.For more information on how to do that, see How to check that .NET Core is already installed.

Pour installer des versions de kit SDK .NET Core supplémentaires sur votre ordinateur, visitez la page Télécharger .net Core .To install additional .NET Core SDK versions on your machine, visit the Download .NET Core page.

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 3.0.100

Règles de correspondanceMatching rules

Notes

Les règles de correspondance sont régies par le dotnet.exe point d’entrée, qui est courant pour tous les runtimes installés .net Core installés.The matching rules are governed by the dotnet.exe entry point, which is common across all installed .NET Core installed runtimes. Les règles de correspondance pour la dernière version installée du Runtime .NET Core sont utilisées lorsque plusieurs runtimes sont installés côte à côte.The matching rules for the latest installed version of the .NET Core Runtime are used when you have multiple runtimes installed side-by-side.

À compter de .NET Core 3,0, les règles suivantes s’appliquent lors de la détermination de la version du kit de développement logiciel (SDK) à utiliser :Starting with .NET Core 3.0, the following rules apply when determining which version of the SDK to use:

  • Si aucun global.jssur le fichier n’est trouvé, ou si global.js ne spécifie pas de version du kit de développement logiciel (SDK) ni de allowPrerelease valeur, la version la plus récente du kit de développement logiciel (SDK) est utilisée (équivalent à la valeur rollForward latestMajor ).If no global.json file is found, or global.json doesn't specify an SDK version nor an allowPrerelease value, the highest installed SDK version is used (equivalent to setting rollForward to latestMajor). La prise en compte des versions du kit de développement logiciel (SDK) préliminaire dépend de la méthode d' dotnet appel.Whether prerelease SDK versions are considered depends on how dotnet is being invoked.

    • Si vous n’êtes pas dans Visual Studio, les versions préliminaires sont prises en compte.If you're not in Visual Studio, prerelease versions are considered.
    • Si vous êtes dans Visual Studio, il utilise l’état de préversion demandé.If you are in Visual Studio, it uses the prerelease status requested. Autrement dit, si vous utilisez une préversion de Visual Studio ou que vous définissez l’option utiliser les aperçus de l’kit SDK .net Core (sous Outils > optionsenvironnement préversion > Environment > Preview Features), les versions préliminaires sont prises en compte ; sinon, seules les versions release sont prises en compte.That is, if you're using a Preview version of Visual Studio or you set the Use previews of the .NET Core SDK option (under Tools > Options > Environment > Preview Features), prerelease versions are considered; otherwise, only release versions are considered.
  • Si vous trouvez un global.jssur le fichier qui ne spécifie pas une version du kit de développement logiciel (SDK), mais qu’il spécifie une allowPrerelease valeur, la version la plus récente du kit de développement logiciel (SDK) est utilisée (équivalent à rollForward latestMajor ).If a global.json file is found that doesn't specify an SDK version but it specifies an allowPrerelease value, the highest installed SDK version is used (equivalent to setting rollForward to latestMajor). La version la plus récente du kit de développement logiciel (SDK) peut être Release ou la version préliminaire dépend de la valeur de allowPrerelease .Whether the latest SDK version can be release or prerelease depends on the value of allowPrerelease. true indique que les versions préliminaires sont prises en compte. false indique que seules les versions release sont prises en compte.true indicates prerelease versions are considered; false indicates that only release versions are considered.

  • Si un global.jssur le fichier est trouvé et qu’il spécifie une version du kit de développement logiciel (SDK) :If a global.json file is found and it specifies an SDK version:

    • Si aucune rollForward valeur n’est définie, elle utilise latestPatch comme stratégie par défaut rollForward .If no rollForward value is set, it uses latestPatch as the default rollForward policy. Sinon, vérifiez chaque valeur et son comportement dans la section restauration par progression .Otherwise, check each value and their behavior in the rollForward section.
    • Si les versions préliminaires sont prises en compte et quel est le comportement par défaut lorsque allowPrerelease n’est pas défini est décrit dans la section allowPrerelease .Whether prerelease versions are considered and what's the default behavior when allowPrerelease isn't set is described in the allowPrerelease section.

Résoudre les avertissements de buildTroubleshoot build warnings

  • L’avertissement suivant indique que votre projet a été compilé à l’aide d’une version préliminaire du kit SDK .NET Core :The following warning indicates that your project was compiled using a prerelease version of the .NET Core SDK:

    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 https://go.microsoft.com/fwlink/?linkid=869452 , consultez.More at https://go.microsoft.com/fwlink/?linkid=869452.

    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. Toutefois, si vous ne souhaitez pas utiliser une version préliminaire, vérifiez les différentes stratégies que vous pouvez utiliser avec le kit de développement logiciel (SDK) .NET Core 3,0 ou une version ultérieure dans la section allowPrerelease .However, if you don't want to use a prerelease version, check the different strategies you can use with the .NET Core 3.0 SDK or a later version in the allowPrerelease section. Pour les ordinateurs sur lesquels le runtime ou le kit de développement logiciel (SDK) .NET Core 3,0 ou version ultérieure n’a jamais été installé, vous devez créer un global.jssur le fichier et spécifier la version exacte que vous souhaitez utiliser.For machines that have never had a .NET Core 3.0 or higher Runtime or SDK installed, you need to create a global.json file and specify the exact version you want to use.

  • L’avertissement suivant indique que votre projet cible EF Core 1,0 ou 1,1, ce qui n’est pas compatible avec le kit de développement logiciel (SDK) .NET Core 2,1 et les versions ultérieures :The following 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:

    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 de versions antérieures 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 (version 2.1.300), la commande dotnet ef est incluse dans le kit SDK.Starting with .NET Core 2.1 SDK (version 2.1.300), the dotnet ef command comes included in the SDK. Pour compiler votre projet, installez le kit de développement logiciel (SDK) .NET Core 2,0 (version 2.1.201) ou une version antérieure sur votre ordinateur, puis définissez la version du kit de développement logiciel (SDK) de votre choix à l’aide de l' global.jsTo compile your project, install .NET Core 2.0 SDK (version 2.1.201) or 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