Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Note
dotnetup está en versión preliminar pública. Sus características y comportamiento pueden cambiar antes de la disponibilidad general.
Dotnetup puede configurar el entorno para que los SDK de .NET y los entornos de ejecución que instale estén disponibles. Para ello, establece las siguientes variables de entorno:
-
PATH: hace que el comandodotnetesté disponible en la línea de comandos. Las herramientas de desarrollo, como Visual Studio o el Kit de desarrollo de C#, también usanPATHpara buscar sdk y entornos de ejecución de .NET. -
DOTNET_ROOT: indica a los ejecutables de aplicación dependientes de la plataforma dónde encontrar una instalación de .NET y sus entornos de ejecución compartidos.
Dotnetup admite diferentes modos de acceso que controlan dónde se establecen estas variables de entorno. Puede elegir un modo de acceso en la configuración inicial de dotnetup o más tarde con el comando dotnetup env.
| Modo de acceso | Behavior |
|---|---|
none |
No modifica estas variables de entorno. Ejecute .NET con dotnetup dotnet. |
shell |
Modifica el perfil de shell para establecer estas variables de entorno. Los procesos iniciados desde ese shell usan los SDK y los entornos de ejecución de .NET instalados por dotnetup. |
everywhere |
Modifica el sistema PATH y establece la variable de entorno de usuario de nivel DOTNET_ROOT. Solo está disponible en Windows. |
De forma predeterminada, dotnetup también se agrega a PATH, independientemente de la configuración del modo de acceso. Esto se puede controlar con dotnetup env set --dotnetup-on-path <true|false>.
Consideraciones sobre el modo Everywhere
El modo Everywhere es el valor predeterminado en Windows para que los SDK y los entornos de ejecución instalados por dotnetup estén disponibles desde las herramientas de desarrollo y desde los terminales que usan cmd como shell. Sin embargo, hay algunas cosas que debe tener en cuenta, principalmente en torno a cómo interactúa con las instalaciones a nivel de sistema del SDK y el entorno de ejecución de .NET.
Las instalaciones para todo el equipo de .NET se encuentran en la carpeta Archivos de programa. Se pueden instalar con instaladores que se pueden descargar desde la página de descargas de .NET. Visual Studio instala el SDK y el entorno de ejecución de .NET para todo el equipo, y los instaladores para aplicaciones dependientes de la plataforma también pueden instalar el Runtime de .NET del que dependen para todo el equipo.
En el modo en todas partes, la raíz de instalación de .NET administrada por dotnetup para el usuario tendrá prioridad sobre la raíz de instalación de .NET en toda la máquina. Esto significa que los .NET SDKs y entornos de ejecución instalados en Program Files no estarán disponibles. Los proyectos que dependen de esos SDK no se compilarán si no está instalado un SDK coincidente. Si no se instala un runtime coincidente, las aplicaciones dependientes del framework no se iniciarán con un error que indica "Debe instalar o actualizar .NET para ejecutar esta aplicación".
Para evitar estos fallos, la configuración inicial de dotnetup ofrece la opción de migrar las instalaciones existentes del SDK y del Runtime de .NET del sistema. También puede migrarlos explícitamente ejecutando dotnetup sdk install --migrate-from-system para los SDK o dotnetup runtime install --migrate-from-system para entornos de ejecución.
Activar o desactivar el modo Everywhere requiere modificar el path del sistema, lo que requiere elevación (es decir, una aprobación de solicitud de UAC o "Ejecutar como administrador"). Esto se debe a que los instaladores para todo el equipo de .NET agregan la raíz de instalación de Program Files .NET a la ruta de acceso del sistema, y la ruta de acceso del sistema tiene prioridad sobre la ruta de acceso de nivel de usuario al resolver comandos. Por lo tanto, dotnetup debe modificar el path del sistema para que la raíz de instalación de dotnetup .NET tenga prioridad.
Dado que PATH del sistema se aplica a todos los usuarios, estos cambios pueden afectar a otros usuarios. La ruta de acceso que se agrega al path del sistema está de forma predeterminada en la carpeta AppData local del usuario. Normalmente, esto no será accesible para otros usuarios, por lo que no afectaría a qué versión de dotnet se resuelve. Sin embargo, los procesos elevados (es decir, ejecutar como administrador) podrían leer la ruta de acceso y podrían terminar resolviendo inesperadamente .NET SDK o runtimes de otro usuario.
Shells compatibles
Soporte para la generación de perfiles y scripts:
- Bash
- Z shell
- Pez
- Pwsh (PowerShell Core)
- PowerShell
Si no especifica --shell, dotnetup detecta el shell actual. Utilice un shell explícito cuando la detección no esté disponible o cuando desee actualizar un perfil diferente:
dotnetup env set shell --shell zsh
Estado almacenado y observado
dotnetup.config.json almacena el modo de acceso seleccionado y si dotnetup debe estar en PATH.
dotnetup env show compara esa configuración con el perfil y el entorno actuales. Notifica el desfase si el estado observado no coincide.
Vuelva a aplicar la configuración almacenada para corregir el desfase:
dotnetup env set
Terminal en uso
Los cambios del perfil y del entorno de Windows no vuelven a escribir el entorno del proceso actual. Abra un nuevo terminal, cargue el perfil modificado o evalúe el script generado.
Para el shell de Bash o Z:
eval "$(dotnetup env script)"
Para PowerShell:
dotnetup env script --shell pwsh | Invoke-Expression
env script sigue la configuración almacenada cuando no se pasan las opciones de selección. Usa --dotnet, --dotnetup o ambos para seleccionar el contenido generado.
Eliminar la configuración del entorno
Quite toda la configuración de conexiones del entorno administrado:
dotnetup env clear
Este comando es equivalente a:
dotnetup env set none --dotnetup-on-path false
No desinstala los SDK ni los entornos de ejecución.