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.
En Windows, las aplicaciones .NET dependientes del marco ya no buscan marcos en varias ubicaciones de instalación.
Comportamiento anterior
En versiones anteriores, una aplicación .NET dependiente del marco de trabajo busca marcos en varias ubicaciones de instalación en Windows. Las ubicaciones eran:
- Al ejecutar la aplicación mediante dotnet, los subdirectorios relativos al ejecutable
dotnet. - Al ejecutar la aplicación a través de su ejecutable (
apphost), la ubicación especificada por el valor de la variable de entornoDOTNET_ROOT(si se ha establecido). - Ubicación de instalación registrada globalmente en HKLM\SOFTWARE\dotnet\Setup\InstalledVersions<arch>\InstallLocation (si se establece).
- Ubicación de instalación predeterminada de %ProgramFiles%\dotnet (o %ProgramFiles(x86)%\dotnet para procesos de 32 bits en Windows de 64 bits).
Este comportamiento de búsqueda de varios niveles se ha habilitado de forma predeterminada, pero se puede deshabilitar estableciendo la variable DOTNET_MULTILEVEL_LOOKUP=0de entorno .
Nuevo comportamiento
Las aplicaciones que tienen como destino .NET 7 o una versión posterior solo buscan marcos en una ubicación, que es la primera ubicación donde se encuentra una instalación de .NET. Cuando se ejecuta una aplicación a través de dotnet, los marcos solo se buscan en subdirectorios relativos al dotnet ejecutable. Cuando se ejecuta una aplicación a través de su archivo ejecutable (apphost), los marcos solo se buscan en la primera de las siguientes ubicaciones donde se encuentra .NET:
- Ubicación especificada por el valor de la
DOTNET_ROOTvariable de entorno (si se establece). - Ubicación de instalación registrada globalmente en HKLM\SOFTWARE\dotnet\Setup\InstalledVersions<arch>\InstallLocation (si se establece).
- Ubicación de instalación predeterminada de %ProgramFiles%\dotnet (o %ProgramFiles(x86)%\dotnet para procesos de 32 bits en Windows de 64 bits).
Versión introducida
.NET 7
Tipo de cambio disruptivo
Este cambio puede afectar a la compatibilidad binaria.
Motivo del cambio
La búsqueda en varios niveles ha provocado varios problemas:
- Confusión para los usuarios: la aplicación puede elegir una ubicación de instalación global o predeterminada a pesar de ejecutar .NET desde una instalación privada.
- Incoherencia entre plataformas (Windows frente a no Windows).
- Interrupciones de comportamiento, a menudo en sistemas automatizados: una nueva instalación global de .NET puede afectar a compilaciones y pruebas aisladas de otro modo.
- Problemas de rendimiento.
Acción recomendada
Asegúrese de que la versión necesaria de .NET esté instalada en la única ubicación de instalación de .NET. Los mensajes de error que se emiten al no iniciarse incluyen la ubicación esperada.
Las APIs afectadas
Ninguno.