Escritura de ensamblados de referencia en la salida intermedia

El SDK de .NET ahora escribe ensamblados de referencia en IntermediateOutputPath en lugar de en OutDir de forma predeterminada. Este cambio quita estos artefactos de solo tiempo de compilación de las salidas que necesita en tiempo de ejecución.

Versión introducida

SDK de .NET 6.0.200

Comportamiento anterior

Desde que se agregaron ensamblados de referencia, el SDK de .NET ha escrito ensamblados de referencia en el directorio ref del directorio OutDir de la compilación. En .NET 5, la propiedad ProduceReferenceAssembly se introdujo y se estableció true de forma predeterminada para net5.0 y aplicaciones posteriores. Con este cambio, muchas aplicaciones comenzaron a generar implícitamente ensamblados de referencia en el directorio OutDir.

Comportamiento nuevo

Ahora, los ensamblados de referencia se escriben en el directorio refint del directorio IntermediateOutputPath de forma predeterminada, como muchos otros artefactos intermedios.

Motivo del cambio

Por lo general, los ensamblados de referencia no son recursos en tiempo de ejecución y, por lo tanto, no pertenecen al directorio OutDir de forma predeterminada.

Si tiene lógica de compilación personalizada y necesita manipular los ensamblados de referencia, use la propiedad TargetRefPath para obtener la ruta de acceso correcta.

Si un sistema externo requiere el ensamblado de referencia en OutDir, establezca la propiedad de MSBuild ProduceReferenceAssemblyInOutDir en true en el archivo del proyecto.