Información general de global.jsonglobal.json overview

Este tema se aplica a: ✓ SDK de .NET Core 1.x SDK de .NET Core 2.xThis topic applies to: ✓ .NET Core 1.x SDK .NET Core 2.x SDK

El archivo global.json permite definir qué versión del SDK de .NET Core se usa al ejecutar comandos de la CLI de .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 selección del SDK de .NET Core es independiente de especificar el runtime al que está destinado el proyecto.Selecting the .NET Core SDK is independent from specifying the runtime your project targets. La versión del SDK de .NET Core indica qué versiones de las herramientas de la CLI de .NET Core se usan.The .NET Core SDK version indicates which versions of the .NET Core CLI tools are used. En general, le interesa usar la versión más reciente de las herramientas, por lo que no es necesario ningún archivo global.json.In general, you want to use the latest version of the tools, so no global.json file is needed.

Para obtener más información sobre cómo especificar el runtime en su lugar, vea Plataformas de destino.For more information about specifying the runtime instead, see Target frameworks.

El SDK de .NET Core busca un archivo global.json en el directorio de trabajo actual (que no es necesariamente el mismo que el directorio del proyecto) o en uno de sus directorios principales..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.

Esquema de global.JSONglobal.json schema

sdksdk

Tipo: ObjectType: Object

Especifica información sobre el SDK de .NET Core que se va a seleccionar.Specifies information about the .NET Core SDK to select.

versionversion

Tipo: StringType: String

La versión del SDK de .NET Core que se va a usar.The version of the .NET Core SDK to use.

Tenga en cuenta que este campo:Note that this field:

  • No admite comodines, es decir, se debe especificar el número de versión completo.Doesn't have globbing support, that is, the full version number has to be specified.
  • No admite intervalos de versiones.Doesn't support version ranges.

En el ejemplo siguiente se muestra el contenido de un archivo global.json:The following example shows the contents of a global.json file:

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

global.json y la CLI de .NET Coreglobal.json and the .NET Core CLI

Resulta útil saber qué versiones están disponibles con el fin de establecer una en el archivo global.json.It's helpful to know which versions are available in order to set one in the global.json file. Puede encontrar la lista completa de los SDK disponibles admitidos en el sitio de descargas de .NET.You can find the full list of supported available SDKs at the .NET Downloads site. A partir del SDK de .NET Core SDK 2.1, puede ejecutar el comando siguiente para comprobar qué versiones del SDK ya están instaladas en el equipo: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

Para instalar otras versiones del SDK de .NET Core en el equipo, visite el sitio de descargas de .NET.To install additional .NET Core SDK versions on your machine, visit the .NET Downloads site.

Puede crear un archivo global.json en el directorio actual mediante la ejecución del comando dotnet new, similar al ejemplo siguiente: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

Reglas de coincidenciaMatching rules

Nota

Las reglas de coincidencia se rigen por el host de aplicaciones, que forma parte del runtime de .NET Core.The matching rules are governed by the apphost, which is part of the .NET Core runtime. Cuando hay varios runtimes instalados en paralelo, se usa la versión más reciente del host.The latest version of the host is used when you have multiple runtimes installed side-by-side.

A partir de .NET Core 2.0, se aplican las reglas siguientes al determinar qué versión del SDK se va a usar:Starting with .NET Core 2.0, the following rules apply when determining which version of the SDK to use:

  • Si no se encuentra ningún archivo global.json o en global.json no se especifica una versión del SDK, se usa la versión instalada del SDK más reciente.If no global.json file is found or global.json doesn't specify an SDK version, the latest installed SDK version is used. La versión del SDK más reciente puede ser la versión o la versión preliminar: prevalece el número de versión más alto.Latest SDK version can be either release or pre-release - the highest version number wins.
  • Si global.json especifica una versión del SDK:If global.json does specify an SDK version:
    • Si la versión del SDK especificada se encuentra en el equipo, se usa esa versión exacta.If the specified SDK version is found on the machine, that exact version is used.
    • Si la versión del SDK especificada no se encuentra en el equipo, se usa la versión de revisión del SDK instalada más reciente de esa versión.If the specified SDK version can't be found on the machine, the latest installed SDK patch version of that version is used. La versión de revisión del SDK instalada más reciente puede ser la versión o la versión preliminar: prevalece el número de versión más alto.Latest installed SDK patch version can be either release or pre-release - the highest version number wins. En .NET Core 2.1 y versiones posteriores, las versiones de revisión inferiores a la versión de revisión especificada se omiten en la selección del SDK.In .NET Core 2.1 and higher, the patch versions lower than the patch version specified are ignored in the SDK selection.
    • Si no se encuentra la versión del SDK especificada y una versión de revisión adecuada del SDK, se produce un error.If the specified SDK version and an appropriate SDK patch version can't be found, an error is thrown.

Actualmente, la versión del SDK se compone de los elementos siguientes:The SDK version is currently composed of the following parts:

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

La versión de características del SDK de .NET Core se representa por medio del primer dígito (x) de la última parte del número (xyz) para las versiones 2.1.100 del SDK y posteriores.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 general, el SDK de .NET Core tiene un ciclo de versiones más rápido que .NET Core.In general, the .NET Core SDK has a faster release cycle than .NET Core.

La versión de revisión se define mediante los dos últimos dígitos (yz) de la última parte del número (xyz) para las versiones 2.1.100 del SDK y posteriores.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. Por ejemplo, si especifica 2.1.300 como la versión del SDK, la selección del SDK busca hasta 2.1.399 pero 2.1.400 no se considera una versión de revisión para 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.

Las versiones del SDK de .NET Core de 2.1.100 a 2.1.201 se publicaron durante la transición entre las combinaciones de número de versión y no procesan correctamente la notación 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 estas versiones se especifican en el archivo global.json, se recomienda encarecidamente asegurarse de que las versiones especificadas están en los equipos de destino.We highly recommend if you specify these versions in the global.json file, that you ensure the specified versions are on the target machines.

Con el SDK 1.x de .NET Core, si se especificaba una versión y no se encontraba ninguna coincidencia exacta, se usaba la versión del SDK instalada más reciente.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 versión del SDK más reciente puede ser la versión o la versión preliminar: prevalece el número de versión más alto.Latest SDK version can be either release or pre-release - the highest version number wins.

Solución de problemas de advertencias de compilaciónTroubleshooting build warnings

Advertencia

Trabaja con una versión preliminar del SDK de .NET Core.You are working with a preview version of the .NET Core SDK. Puede definir la versión del SDK a través de un archivo global.json en el proyecto actual.You can define the SDK version via a global.json file in the current project. Más información en https://go.microsoft.com/fwlink/?linkid=869452.More at https://go.microsoft.com/fwlink/?linkid=869452

Esta advertencia indica que el proyecto se está compilando con una versión preliminar del SDK de .NET Core, como se explica en la sección Reglas de coincidencia.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. Las versiones del SDK de .NET Core tienen un historial y el compromiso de ser de alta calidad..NET Core SDK versions have a history and commitment of being high quality. Pero si no quiere usar una versión preliminar, agregue un archivo global.json a la estructura de jerarquía del proyecto para especificar qué versión del SDK se va a utilizar, y use dotnet --list-sdks para confirmar que la versión está instalada en el equipo.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. Cuando se publica una versión nueva, para usarla, quite el archivo global.json o actualícelo para usar la versión más reciente.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.

Advertencia

El proyecto de inicio "{proyectoDeInicio}" está destinado a la versión "{versiónPlataformaDeDestino}" de ".NETCoreApp".Startup project '{startupProject}' targets framework '.NETCoreApp' version '{targetFrameworkVersion}'. Esta versión de las herramientas de línea de comandos de Entity Framework Core .NET solo admite la versión 2.0 o superior.This version of the Entity Framework Core .NET Command-line Tools only supports version 2.0 or higher. Para obtener información sobre el uso de las versiones anteriores de las herramientas, vea https://go.microsoft.com/fwlink/?linkid=871254For information on using older versions of the tools, see https://go.microsoft.com/fwlink/?linkid=871254

A partir del SDK de .NET Core 2.1 (versión 2.1.300), el comando dotnet ef se incluye en el SDK.Starting with .NET Core 2.1 SDK (version 2.1.300), the dotnet ef command comes included in the SDK. Esta advertencia indica que el proyecto tiene como destino EF Core 1.0 ó 1.1, que no es compatible con el SDK de .NET Core 2.1 y versiones posteriores.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. Para compilar el proyecto, instale el SDK de .NET Core 2.0 (versión 2.1.201) y versiones anteriores en el equipo y defina la versión del SDK deseada mediante el archivo global.json.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. Para obtener más información sobre el comando dotnet ef, vea EF Core .NET Command-line Tools (Herramientas de línea de comandos de EF Core .NET).For more information about the dotnet ef command, see EF Core .NET Command-line Tools.

Vea tambiénSee also