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.
Acción recomendada
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.