referencia de scripts de dotnet-install
NOMBRE
dotnet-install.ps1
| dotnet-install.sh
: script usado para instalar el SDK de .NET y el entorno de ejecución compartido.
Sinopsis
Windows:
dotnet-install.ps1 [-Architecture <ARCHITECTURE>] [-AzureFeed]
[-Channel <CHANNEL>] [-DryRun] [-FeedCredential]
[-InstallDir <DIRECTORY>] [-JSonFile <JSONFILE>]
[-NoCdn] [-NoPath] [-ProxyAddress] [-ProxyBypassList <LIST_OF_URLS>]
[-ProxyUseDefaultCredentials] [-Quality <QUALITY>] [-Runtime <RUNTIME>]
[-SkipNonVersionedFiles] [-UncachedFeed] [-KeepZip] [-ZipPath <PATH>] [-Verbose]
[-Version <VERSION>]
Get-Help ./dotnet-install.ps1
Linux/macOS:
dotnet-install.sh [--architecture <ARCHITECTURE>] [--azure-feed]
[--channel <CHANNEL>] [--dry-run] [--feed-credential]
[--install-dir <DIRECTORY>] [--jsonfile <JSONFILE>]
[--no-cdn] [--no-path] [--quality <QUALITY>]
[--runtime <RUNTIME>] [--runtime-id <RID>]
[--skip-non-versioned-files] [--uncached-feed] [--keep-zip] [--zip-path <PATH>] [--verbose]
[--version <VERSION>]
dotnet-install.sh --help
El script de bash también lee modificadores de PowerShell, por lo que puede usar modificadores de PowerShell con el script en sistemas Linux y macOS.
Descripción
Los scripts dotnet-install
realizan una instalación sin derechos administrativos del SDK de .NET, que incluye la CLI de .NET y el entorno de ejecución compartido. Hay dos scripts:
- un script de PowerShell que funciona en Windows; Para obtener instrucciones de instalación, consulte Instalación en Windows.
- un script de Bash que funciona en Linux y macOS. Para obtener instrucciones de instalación, consulte Instalación en Linux e Instalación en macOS.
Nota
.NET recopila datos de telemetría. Para obtener más información y saber cómo no participar, consulte Telemetría del SDK de .NET.
Propósito
El uso previsto de los scripts es en escenarios de integración continua (CI), donde:
el SDK debe instalarse sin interacción del usuario y sin derechos de administrador;
no es necesario que la instalación del SDK se mantenga en varias ejecuciones de CI.
Esta es la secuencia típica de eventos:
- Se desencadena la CI.
- CI instala el SDK mediante uno de estos scripts.
- CI finaliza su trabajo y borra los datos temporales, incluida la instalación del SDK.
Para configurar un entorno de desarrollo o ejecutar aplicaciones, use los instaladores en lugar de estos scripts.
Versión recomendada
Se recomienda usar la versión estable de los scripts:
- Bash (Linux/macOS): https://dot.net/v1/dotnet-install.sh
- PowerShell (Windows): https://dot.net/v1/dotnet-install.ps1
El origen de los scripts se encuentra en el repositorio dotnet/install-scripts de GitHub.
Comportamiento de los scripts
Ambos scripts tienen el mismo comportamiento. Descargan el archivo ZIP o tarball desde las entregas de compilación de la CLI y proceden a instalarlo en la ubicación predeterminada o en una ubicación especificada por -InstallDir|--install-dir
.
De forma predeterminada, los scripts de instalación descargan el SDK y lo instalan. Si desea obtener solo el tiempo de ejecución compartido, especifique el argumento -Runtime|--runtime
.
De forma predeterminada, el script agrega la ubicación de instalación a $PATH para la sesión actual. Para invalidar este comportamiento, especifique el argumento -NoPath|--no-path
. El script no establece la variable de entorno DOTNET_ROOT
.
Importante
El script no agrega la ubicación de instalación a la variable de entorno PATH
del usuario, sino que debe agregarla manualmente.
Antes de ejecutar el script, asegúrese de que se admite el sistema operativo. Para obtener más información, consulte Instalación de .NET en Windows, Linux y macOS.
Puede instalar una versión específica mediante el argumento -Version|--version
. La versión debe especificarse como un número de versión de tres partes, por ejemplo, 2.1.0
. Si no se especifica la versión, el script instala la versión latest
.
Los scripts de instalación no actualizan el Registro en Windows. Solo descargan los archivos binarios comprimidos y los copian en una carpeta. Si quiere que se actualicen los valores de las claves del Registro, use los instaladores de .NET.
Opciones
-Architecture|--architecture <ARCHITECTURE>
Arquitectura de los archivos binarios de .NET para instalar. Los valores posibles son
<auto>
,amd64
,x64
,x86
,arm
arm64
, ,s390x
, yriscv64
ppc64le
. El valor predeterminado es<auto>
, que representa la arquitectura de SO que se ejecuta en ese momento.-AzureFeed|--azure-feed
Solo para uso interno. Permite usar otro almacenamiento del que descargar los archivos del SDK. Este parámetro solo se usa si --no-cdn es “false”. El valor predeterminado es
https://dotnetcli.azureedge.net/dotnet
.-Channel|--channel <CHANNEL>
Especifica el canal de origen para la instalación. Los valores posibles son:
STS
: la versión más reciente con soporte en un plazo estándar.LTS
: la versión más reciente con soporte a largo plazo.- Versión de dos partes en formato A.B que representa una versión específica (por ejemplo,
3.1
o8.0
). - Versión de tres partes en formato A.B.Cxx, que representa una versión específica del SDK (por ejemplo, 8.0.1xx o 8.0.2xx). Disponible desde la versión 5.0.
El parámetro
version
invalida el parámetrochannel
cuando se usa cualquier versión que no sealatest
.El valor predeterminado es
LTS
. Para más información sobre los canales de soporte técnico de .NET, vea la página .NET Support Policy (Directiva de soporte técnico de .NET Core).-DryRun|--dry-run
Si se establece, el script no realizará la instalación. En su lugar, muestra qué línea de comandos se va a usar para instalar de manera coherente la versión solicitada actualmente de la CLI de .NET. Por ejemplo, si especifica la versión
latest
, se muestra un vínculo con la versión específica, de manera que este comando puede usarse de manera determinista en un script de compilación. También se muestra la ubicación de los archivos binarios si prefiere instalarla o descargarla por su cuenta.-FeedCredential|--feed-credential
Se utiliza como una cadena de consulta para anexar a la fuente de Azure. Permite cambiar la dirección URL para usar cuentas de almacenamiento de blobs no público.
--help
Imprime la ayuda para el script. Solo se aplica al script de Bash. Para PowerShell, use
Get-Help ./dotnet-install.ps1
.-InstallDir|--install-dir <DIRECTORY>
Especifica la ruta de instalación. Si no existe el directorio, se crea. El valor predeterminado es %LocalAppData%\Microsoft\dotnet en Windows y $HOME/.dotnet en Linux o macOS. Los archivos binarios se colocan directamente en el directorio.
-JSonFile|--jsonfile <JSONFILE>
Especifica una ruta de acceso a un archivo global.json que se va a usar para determinar la versión del SDK. El archivo global.json debe tener un valor para
sdk:version
.-NoCdn|--no-cdn
Deshabilita la descarga desde Azure Content Delivery Network (CDN) y usa la fuente no almacenada en caché directamente.
-NoPath|--no-path
Si se establece, la carpeta de instalación no se exporta a la ruta de acceso para la sesión actual. De manera predeterminada, el script modifica la variable de entorno PATH, que hace que la CLI de .NET esté disponible inmediatamente después de la instalación.
-ProxyAddress
Si se establece, el instalador usa el proxy al realizar solicitudes web. (Solo es válido para Windows).
-ProxyBypassList <LIST_OF_URLS>
Si se establece con
ProxyAddress
, proporciona una lista de direcciones URL separadas por comas que omiten el proxy. (Solo es válido para Windows).-ProxyUseDefaultCredentials
Si se establece, el instalador usa las credenciales del usuario actual cuando se usa la dirección del proxy. (Solo es válido para Windows).
-Quality|--quality <QUALITY>
Descarga la compilación más reciente de la calidad especificada en el canal. Los valores posibles son
daily
,signed
,validated
,preview
yGA
. La mayoría de los usuarios deben usar cualidadesdaily
,preview
oGA
.Los distintos valores de calidad indican distintas fases del proceso de lanzamiento del SDK o runtime instalados.
daily
: las compilaciones más recientes del SDK o del runtime. Se construyen todos los días y no se prueban. No se recomiendan para el uso en producción, pero a menudo se pueden usar para probar características o correcciones específicas inmediatamente después de fusionarlas mediante combinación en el producto. Estas compilaciones proceden del repositoriodotnet/installer
y, por tanto, si busca correcciones dedotnet/sdk
, debe esperar a que el código fluya y se fusione mediante combinación del SDK al instalador antes de que aparezca en una compilación diaria.signed
: compilaciones firmadas por Microsoft que no se validan ni publican públicamente. Las compilaciones firmadas son candidatas para la validación, la versión preliminar y la versión de disponibilidad general. Este nivel de calidad no está pensado para uso público.validated
: compilaciones que han realizado algunas pruebas internas en ellas, pero que aún no se han publicado como versión preliminar o disponibilidad general. Este nivel de calidad no está pensado para uso público.preview
: las versiones públicas mensuales de la siguiente versión de .NET, diseñadas para uso público. No se recomienda para el uso de producción. Diseñado para permitir que los usuarios experimenten y prueben la nueva versión principal antes de su lanzamiento.GA
: las versiones estables finales del SDK y el runtime de .NET. Diseñado para uso público, así como soporte técnico de producción.
La opción
--quality
solo funciona en combinación con--channel
, pero no es aplicable a los canalesSTS
yLTS
y se omitirá si se usa uno de ellos.Para una instalación del SDK, use un valor
channel
que esté en formatoA.B
oA.B.Cxx
. Para una instalación del entorno de ejecución, usechannel
en formatoA.B
.No use los parámetros
version
yquality
. Cuandoquality
se especifica, el script determina por sí mismo la versión adecuada.Disponible desde la versión 5.0.
-Runtime|--runtime <RUNTIME>
Se instala simplemente el entorno de tiempo de ejecución compartido, no el SDK completo. Los valores posibles son:
dotnet
: el runtime compartidoMicrosoft.NETCore.App
.aspnetcore
: el runtime compartidoMicrosoft.AspNetCore.App
.windowsdesktop
: el runtime compartidoMicrosoft.WindowsDesktop.App
.
--os <OPERATING_SYSTEM>
Especifica el sistema operativo para el que se instalan las herramientas. Los valores posibles son
osx
,macos
,linux
,linux-musl
yfreebsd
.El parámetro es opcional y solo se debe usar cuando sea necesario invalidar el sistema operativo detectado por el script.
-SharedRuntime|--shared-runtime
Nota
Este parámetro está obsoleto y puede quitarse en una versión futura del script. La alternativa recomendada es la opción
-Runtime|--runtime
.Se instalan simplemente los bits del entorno de tiempo de ejecución compartido, no el SDK completo. Esta opción equivale a especificar
-Runtime|--runtime dotnet
.-SkipNonVersionedFiles|--skip-non-versioned-files
Omite la instalación de archivos sin control de versiones, como dotnet.exe, si ya existen.
-UncachedFeed|--uncached-feed
Solo para uso interno. Permite usar otro almacenamiento del que descargar los archivos del SDK. Este parámetro solo se usa si --no-cdn es “true”.
-KeepZip|--keep-zip
Si se establece, el archivo del SDK descargado se mantiene después de la instalación.
-ZipPath|--zip-path <PATH>
Si se establece, el archivo del SDK descargado se almacena en la ruta de acceso especificada.
-Verbose|--verbose
Muestra la información de diagnóstico.
-Version|--version <VERSION>
Representa una versión de compilación concreta. Los valores posibles son:
latest
: compilación más reciente en el canal (utilizado con la opción-Channel
).- Versión de tres partes en formato X.Y.Z que representa una determinada versión de compilación; reemplaza a la opción
-Channel
. Por ejemplo:2.0.0-preview2-006120
.
Si no se especifica, el valor predeterminado de
-Version
eslatest
.
Ejemplos
Instale la versión compatible a largo plazo más reciente en la ubicación predeterminada:
Windows:
./dotnet-install.ps1 -Channel LTS
macOS y Linux:
./dotnet-install.sh --channel LTS
Instale la versión preliminar más reciente del SDK 6.0.1xx en la ubicación especificada:
Windows:
./dotnet-install.ps1 -Channel 6.0.1xx -Quality preview -InstallDir C:\cli
macOS y Linux:
./dotnet-install.sh --channel 6.0.1xx --quality preview --install-dir ~/cli
Instale la versión 6.0.0 del entorno de ejecución compartido:
Windows:
./dotnet-install.ps1 -Runtime dotnet -Version 6.0.0
macOS y Linux:
./dotnet-install.sh --runtime dotnet --version 6.0.0
Obtenga el script e instale la versión 6.0.2 detrás de un proxy corporativo (solo en Windows):
Invoke-WebRequest 'https://dot.net/v1/dotnet-install.ps1' -Proxy $env:HTTP_PROXY -ProxyUseDefaultCredentials -OutFile 'dotnet-install.ps1'; ./dotnet-install.ps1 -InstallDir '~/.dotnet' -Version '6.0.2' -Runtime 'dotnet' -ProxyAddress $env:HTTP_PROXY -ProxyUseDefaultCredentials;
Obtenga el script e instale ejemplos de una línea para la CLI de .NET:
Windows:
# Run a separate PowerShell process because the script calls exit, so it will end the current PowerShell session. &powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -UseBasicParsing 'https://dot.net/v1/dotnet-install.ps1'))) <additional install-script args>"
macOS y Linux:
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin <additional install-script args>
Establecimiento de variables de entorno
La instalación manual de .NET no agrega las variables de entorno en todo el sistema y, por lo general, solo funciona para la sesión en la que se instaló .NET. Hay dos variables de entorno que debe establecer para el sistema operativo:
DOTNET_ROOT
Esta variable se establece en la carpeta en la que se instaló .NET, como
$HOME/.dotnet
para Linux y macOS, y$HOME\.dotnet
en PowerShell para Windows.PATH
Esta variable debe incluir la carpeta
DOTNET_ROOT
y la carpeta del usuario .dotnet/tools. Por lo general, esto es$HOME/.dotnet/tools
en Linux y macOS y$HOME\.dotnet\tools
en PowerShell en Windows.
Sugerencia
Para Linux y macOS, use el comando echo
para establecer las variables en el perfil de shell, como .bashrc:
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools' >> ~/.bashrc
Desinstalación
No hay ningún script de desinstalación. Para obtener información sobre cómo desinstalar .NET manualmente, vea Procedimientos para quitar el runtime y el SDK de .NET.
Validación de firmas de dotnet-install.sh
La validación de firmas es una medida de seguridad importante que ayuda a garantizar la autenticidad e integridad de un script. Al comprobar la firma de un script, puede asegurarse de que no se ha alterado y que procede de un origen de confianza.
Esta es una guía paso a paso sobre cómo comprobar la autenticidad del script de dotnet-install.sh
mediante GPG:
- Instalar GPG:GPG (GNU Privacy Guard) es una herramienta gratuita y de código abierto para cifrar y firmar datos. Puede instalarlo siguiendo las instrucciones de en el sitio web de GPG.
- Importe nuestra clave pública: descargue el archivo de clave pública install-scripts y, a continuación, impórtelo en el keyring GPG ejecutando el comando
gpg --import dotnet-install.asc
. - Descargue el archivo de firma: el archivo de firma de nuestro script de Bash está disponible en
https://dot.net/v1/dotnet-install.sig
. Puede descargarlo mediante una herramienta comowget
ocurl
. - Compruebe la firma: para comprobar la firma de nuestro script de Bash, ejecute el comando
gpg --verify dotnet-install.sig dotnet-install.sh
. Esto comprobará la firma del archivodotnet-install.sh
en la firma del archivodotnet-install.sig
. - Compruebe el resultado: si la firma es válida, verá un mensaje que contiene
Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>"
. Esto significa que el script no se ha alterado y puede ser de confianza.
Preparación del entorno
La instalación de GPG e importación de nuestra clave pública es una operación única.
sudo apt install gpg
wget https://dot.net/v1/dotnet-install.asc
gpg --import dotnet-install.asc
Cuando se realiza correctamente, debería ver una salida similar a la siguiente:
gpg: directory '/home/<user>/.gnupg' created
gpg: keybox '/home/<user>/.gnupg/pubring.kbx' created
gpg: /home/<user>/.gnupg/trustdb.gpg: trustdb created
gpg: key B9CF1A51FC7D3ACF: public key "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
Descarga y comprobación
Con la clave importada, ahora puede descargar el script y la firma y, a continuación, comprobar que el script coincide con la firma:
wget https://dot.net/v1/dotnet-install.sh
wget https://dot.net/v1/dotnet-install.sig
gpg --verify dotnet-install.sig dotnet-install.sh
Cuando se realiza correctamente, debería ver una salida similar a la siguiente:
gpg: Signature made <datetime>
gpg: using RSA key B9CF1A51FC7D3ACF
gpg: Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 2B93 0AB1 228D 11D5 D7F6 B6AC B9CF 1A51 FC7D 3ACF
La advertencia significa que no confía en la clave pública en el keyring, pero el script se sigue comprobando. El código de salida devuelto por el comando de comprobación debe ser 0
, lo que indica que se ha realizado correctamente.