Compartir a través de


Cambios de comportamiento de API relacionados con ensamblados para el formato de publicación de un solo archivo

Varias API relacionadas con la ubicación de archivos de un ensamblado tienen cambios de comportamiento cuando se invocan en un formato de publicación de un solo archivo.

Descripción del cambio

En la publicación de un solo archivo para .NET 5 y versiones posteriores, los ensamblados empaquetados se cargan desde la memoria en lugar de extraerse en el disco. En el caso de las aplicaciones publicadas de un solo archivo, esto significa que ciertas API relacionadas con la ubicación devuelven valores diferentes en .NET 5 y versiones posteriores que en versiones anteriores de .NET. Los cambios son los siguientes:

API Versiones anteriores .NET 5 y versiones posteriores
Assembly.Location Devuelve la ruta de acceso del archivo DLL extraído Devuelve una cadena vacía para los ensamblados agrupados
Assembly.CodeBase Devuelve la ruta de acceso del archivo DLL extraído Inicia una excepción para los ensamblados agrupados
Assembly.GetFile(String) Devuelve null para los ensamblados agrupados Inicia una excepción para los ensamblados agrupados
Environment.GetCommandLineArgs()[0] El valor es el nombre del punto de entrada del archivo DLL El valor es el nombre del archivo ejecutable del host
AppContext.BaseDirectory El valor es el directorio de extracción temporal El valor es el directorio contenedor del archivo ejecutable del host

Versión introducida

5.0

Evite las dependencias de la ubicación de archivo de los ensamblados al publicarlos como un solo archivo.

API afectadas