UseDotNet@2: uso de la tarea dotnet v2

Utiliza esta tarea para adquirir una versión específica del .NET Core SDK desde la internet o la caché local y añádela a la PATH. Utiliza esta tarea para cambiar la versión de .NET Core que se usa en tareas posteriores. Esta tarea también proporciona compatibilidad con proxy.

Sintaxis

# Use .NET Core v2
# Acquires a specific version of the .NET Core SDK from the internet or the local cache and adds it to the PATH. Use this task to change the version of .NET Core used in subsequent tasks. Additionally provides proxy support.
- task: UseDotNet@2
  inputs:
    #packageType: 'sdk' # 'runtime' | 'sdk'. Package to install. Default: sdk.
    #useGlobalJson: false # boolean. Optional. Use when packageType = sdk. Use global json. Default: false.
    #workingDirectory: # string. Optional. Use when useGlobalJson = true. Working Directory.
    #version: # string. Optional. Use when useGlobalJson = false || packageType = runtime. Version.
    #includePreviewVersions: false # boolean. Optional. Use when useGlobalJson = false  || packageType = runtime. Include Preview Versions. Default: false.
    #requestTimeout: '300000' # string. Set timeout for package download request. Default: 300000.
  # Advanced
    #vsVersion: # string. Compatible Visual Studio version.
    #checkForExistingVersion: false # boolean. Check for existing installation. Default: false.
    #installationPath: '$(Agent.ToolsDirectory)/dotnet' # string. Path To Install .Net Core. Default: $(Agent.ToolsDirectory)/dotnet.
    #performMultiLevelLookup: false # boolean. Perform Multi Level Lookup. Default: false.
# Use .NET Core v2
# Acquires a specific version of the .NET Core SDK from the internet or the local cache and adds it to the PATH. Use this task to change the version of .NET Core used in subsequent tasks. Additionally provides proxy support.
- task: UseDotNet@2
  inputs:
    #packageType: 'sdk' # 'runtime' | 'sdk'. Package to install. Default: sdk.
    #useGlobalJson: false # boolean. Optional. Use when packageType = sdk. Use global json. Default: false.
    #workingDirectory: # string. Optional. Use when useGlobalJson = true. Working Directory.
    #version: # string. Optional. Use when useGlobalJson = false || packageType = runtime. Version.
    #includePreviewVersions: false # boolean. Optional. Use when useGlobalJson = false  || packageType = runtime. Include Preview Versions. Default: false.
    #requestTimeout: '300000' # string. Set timeout for package download request. Default: 300000.
  # Advanced
    #vsVersion: # string. Compatible Visual Studio version.
    #installationPath: '$(Agent.ToolsDirectory)/dotnet' # string. Path To Install .Net Core. Default: $(Agent.ToolsDirectory)/dotnet.
    #performMultiLevelLookup: false # boolean. Perform Multi Level Lookup. Default: false.
# Use .NET Core v2
# Acquires a specific version of the .NET Core SDK from the internet or the local cache and adds it to the PATH. Use this task to change the version of .NET Core used in subsequent tasks. Additionally provides proxy support.
- task: UseDotNet@2
  inputs:
    #packageType: 'sdk' # 'runtime' | 'sdk'. Package to install. Default: sdk.
    #useGlobalJson: false # boolean. Optional. Use when packageType = sdk. Use global json. Default: false.
    #workingDirectory: # string. Optional. Use when useGlobalJson = true. Working Directory.
    #version: # string. Optional. Use when useGlobalJson = false || packageType = runtime. Version.
    #includePreviewVersions: false # boolean. Optional. Use when useGlobalJson = false  || packageType = runtime. Include Preview Versions. Default: false.
  # Advanced
    #vsVersion: # string. Compatible Visual Studio version.
    #installationPath: '$(Agent.ToolsDirectory)/dotnet' # string. Path To Install .Net Core. Default: $(Agent.ToolsDirectory)/dotnet.
    #performMultiLevelLookup: false # boolean. Perform Multi Level Lookup. Default: false.

Entradas

packageType - Paquete a instalar
string. Valores permitidos: runtime, sdk (SDK (contiene el tiempo de ejecución)). Valor predeterminado: sdk.

Especifica si instalar solo el runtime .NET o el SDK.


useGlobalJson - Usa json global
boolean. Opcional. Use cuando packageType = sdk. Valor predeterminado: false.

Instala todos los SDKs a partir de global.json archivos. Estos archivos se buscan desde system.DefaultWorkingDirectory. Puede cambiar la ruta de acceso raíz de búsqueda estableciendo la entrada del directorio de trabajo.

La tarea también lee la sdk.rollForward propiedad de global.json e instala la última versión que cumple con la política de avance de avance especificada. Por ejemplo, si tu global.json especifica "version": "8.0.302" con "rollForward": "latestFeature", la tarea instala el último 8.0.x SDK en lugar de la versión exacta. Si sdk.rollForward no está presente, la tarea instala la versión exacta especificada en sdk.version, que coincide con el comportamiento anterior. Para más información sobre los valores soportados rollForward , consulte la sección Comentarios y la visión general deglobal.json.

El 6.x formato y 6.1.x (usando .x como comodín) descrito en la UseDotNet@2.version entrada es para su uso en la version entrada de la tarea, no para el sdk.version parámetro en global.json.

Si recibes un mensaje de error como ##[error]Version 6.0.x is not allowed. Allowed version types are: majorVersion.x, majorVersion.minorVersion.x, majorVersion.minorVersion.patchVersion. More details: Only explicit versions and accepted, such as: 2.2.301. Version: 6.0.x is not valid. y estás usando global.json, comprueba en sdk.version tu global.jsonarchivo .

Para más información sobre global.json, consulta Selecciona la versión .NET que vas a usar.


de directorio de trabajo de
string. Opcional. Use cuando useGlobalJson = true.

Especifica la ruta desde donde global.json deben buscarse los archivos al usar useGlobalJson. Si el valor está vacío, system.DefaultWorkingDirectory se considerará como el camino raíz.


version - versión
string. Opcional. Use cuando useGlobalJson = false || packageType = runtime.

Especifica la versión del SDK .NET Core o el tiempo de ejecución a instalar. Los formatos de valor de versión se muestran con ejemplos:

  • 2.x: Instala el último SDK o runtime con la versión principal especificada, 2.
  • 3.1.x: Instala el último SDK o runtime con las versiones principales y menores especificadas, 3 y 1.
  • 3.1.402: Instala el SDK o la versión de ejecución especificada, 3.1.402.

Los valores de versión para SDK o instalaciones en tiempo de ejecución están en el releases.json archivo. El enlace a una releases.json versión mayor/menor está en el archivo índice releases . Por ejemplo, el enlace al archivoreleases.json de la versión 3.1.


vsVersion - Compatible Visual Studio versión
string.

Especifica una versión compatible de Visual Studio para una instalación correspondiente del SDK .NET Core. El valor debe ser un número de versión completo, como 16.6.4, que contiene una versión mayor, una menor y un número de parche.

Los valores de versión para SDK o instalaciones en tiempo de ejecución, que se usan para la version cadena, están en el releases.json archivo. El enlace a una releases.json versión mayor/menor está en el archivo índice releases . Por ejemplo, el enlace al archivoreleases.json de la versión 3.1.


checkForExistingVersion - Comprueba si hay instalaciones existentes
boolean. Valor predeterminado: false.

Selecciona si quieres detectar si la versión especificada ya está instalada antes de intentar descargarla. Úsalo solo cuando installationPath esté vacío, es decir, se ponga en valor por defecto.


includePreviewVersions - Incluir versiones preliminares
boolean. Opcional. Use cuando useGlobalJson = false || packageType = runtime. Valor predeterminado: false.

Si se establece en true, incluye versiones de vista previa cuando la tarea busca las últimas versiones de ejecución/SDK, como buscar 2.2.x o 3.1.x. Esta configuración se ignora si especificas una versión exacta, como 3.0.100-preview3-010431.


installationPath - Ruta para instalar .NET Core
string. Valor predeterminado: $(Agent.ToolsDirectory)/dotnet.

Especifica dónde debe instalarse el SDK/Runtime Core de .NET. Diferentes caminos pueden tener el siguiente impacto en el comportamiento de .NET.

  • $(Agent.ToolsDirectory): Usar esta ruta almacena en caché la instalación en el agente, ya que este directorio no se limpia entre pipelines. Todas las canalizaciones que se ejecutan en el agente tienen acceso a las versiones instaladas anteriormente.
  • $(Agent.TempDirectory): Usar esta ruta asegura que una pipeline no utilice una versión en caché de .NET Core, ya que esta carpeta se limpia tras cada pipeline.
  • Otra ruta: Puedes usar cualquier ruta si el proceso agente tiene acceso a la ruta. Esto cambiará el estado de la máquina y afectará a todos los procesos que se ejecutan en ella.

Nota

Puedes usar la configuración Multi-Level LookupperformMultiLevelLookup, para configurar cómo el host de .NET busca versiones.


performMultiLevelLookup - Realizar búsqueda multinivel
boolean. Valor predeterminado: false.

Configura el comportamiento del proceso host .NET cuando busca un framework compartido adecuado. Los valores son:

  • false: El proceso anfitrión busca únicamente las versiones que están presentes en la carpeta especificada por la tarea.
  • true: El proceso host buscará en ubicaciones globales predefinidas usando búsqueda multinivel. Las ubicaciones globales predeterminadas son:
    • C:\Program Files\dotnet (procesos de 64 bits)
    • C:\Program Files (x86)\dotnet (procesos de 32 bits)

Infórmate más sobre la búsqueda multinivel de SharedFX.

Nota

performMultiLevelLookup solo se aplica a agentes basados en Windows.


requestTimeout - Establecer el tiempo de espera de la solicitud de descarga de paquetes
string. Valor predeterminado: 300000.

Proporciona un valor de tiempo de espera para las solicitudes HTTP que realiza la tarea para obtener el paquete .NET. El valor está en milisegundos. El valor predeterminado es 300000 milisegundos (5 minutos). No puede tener más de 600000 milisegundos (10 minutos).


Opciones de control de tareas

Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Observaciones

La tarea Usar .NET Núcleo adquiere una versión específica de .NET Núcleo de inte rnet o de la caché de herramientas y la añade al PATH del Agente de Azure Pipelines (alojado o privado). Utiliza esta tarea para cambiar la versión de .NET Core que se usará en tareas posteriores como DotNetCoreCLI@2. Añadir esta tarea antes de la DotNetCoreCLI@2 en una definición de compilación garantiza que la versión esté disponible en el momento de crear, probar y publicar tu aplicación.

El enfoque del instalador de herramientas también permite desacoplar los ciclos de actualización del agente. Si la versión de .NET Core que buscas falta en el agente de Azure Pipelines (alojada o privada), entonces puedes usar esta tarea para instalar la versión correcta en el agente.

Soporte roll-forward con global.json

Cuando useGlobalJson está configurado en true, la tarea lee la sdk.rollForward propiedad de tu global.json archivo e instala la última versión del SDK que cumple con la política de roll-forward especificada. Para disable, patch, feature, y minor políticas, esto coincide con cómo la CLI .NET resuelve localmente las versiones del SDK; major y latestMajor actualmente se resuelven dentro de la misma versión principal.

Si sdk.rollForward no está presente en tu global.json, la tarea instala la versión exacta especificada en sdk.version. Esto coincide con el comportamiento anterior.

La siguiente tabla muestra cómo cada rollForward valor afecta a la resolución de la versión:

Valor rollForward Behavior Ejemplo: la versión 8.0.302 se resuelve a
disable Instala la versión exacta especificada. 8.0.302
patch Instala el último parche dentro de la misma banda de funciones. Últimas novedades >=8.0.300 <8.0.400
latestPatch Igual a patch. Últimas novedades >=8.0.300 <8.0.400
feature Instala la última banda de funciones dentro de la misma versión major.minor. Últimas novedades 8.0.x
latestFeature Igual a feature. Últimas novedades 8.0.x
minor Instala la última versión menor dentro de la misma versión principal. Últimas novedades 8.x
latestMinor Igual a minor. Últimas novedades 8.x
major Instala la última versión dentro de la misma versión principal. Últimas novedades 8.x
latestMajor Igual a major. Últimas novedades 8.x

Nota

En UseDotNet@2, las major políticas y latestMajor se resuelven actualmente solo dentro de la misma versión principal. La resolución de versiones entre mayores aún no está soportada.

Si global.json contiene un valor no reconocido rollForward , la tarea registra una advertencia y vuelve a instalar la versión exacta especificada en sdk.version.

Para la especificación completa de rollForward los valores, véase global.json resumen.

Ejemplos

Instala la última banda de funciones usando global.json

El siguiente global.json archivo especifica la versión 8.0.302 del SDK con rollForward .latestFeature La tarea instala el último 8.0.x SDK disponible.

{
  "sdk": {
    "version": "8.0.302",
    "rollForward": "latestFeature"
  }
}
steps:
- task: UseDotNet@2
  displayName: 'Install .NET SDK from global.json'
  inputs:
    packageType: 'sdk'
    useGlobalJson: true

Instala el último parche dentro de una banda de funciones usando global.json

El siguiente global.json archivo especifica la versión 8.0.302 del SDK con rollForward .latestPatch La tarea instala la última versión del SDK dentro de la 8.0.3xx banda de características.

{
  "sdk": {
    "version": "8.0.302",
    "rollForward": "latestPatch"
  }
}
steps:
- task: UseDotNet@2
  displayName: 'Install .NET SDK from global.json'
  inputs:
    packageType: 'sdk'
    useGlobalJson: true

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
demandas Ninguno
Capabilities Ejecutar esta tarea satisface las siguientes exigencias para cualquier tarea posterior en el mismo trabajo: DotNetCore
restricciones de comandos Cualquier
variables settable Cualquier
Versión del agente 2.144.0 o superior
Categoría de tarea Herramienta

Consulte también