Scrivere assembly di riferimento nell'output intermedio

.NET SDK scrive ora assembly di riferimento in IntermediateOutputPath anziché in OutDir per impostazione predefinita. Questa modifica rimuove questi artefatti di sola compilazione dagli output necessari in fase di esecuzione.

Versione introdotta

.NET SDK 6.0.200

Comportamento precedente

Poiché sono stati aggiunti assembly di riferimento, .NET SDK ha scritto assembly di riferimento nella directory di riferimento nella OutDir directory della compilazione. In .NET 5 la proprietà ProduceReferenceAssembly è stata introdotta e indicata come impostazione predefinita true per net5.0 e le applicazioni successive. Con questa modifica, molte applicazioni hanno iniziato a generare in modo implicito assembly di riferimento nella directory OutDir.

Nuovo comportamento

Gli assembly di riferimento vengono ora scritti nella directory refint della directory IntermediateOutputPath per impostazione predefinita, come molti altri artefatti intermedi.

Motivo della modifica

Gli assembly di riferimento in genere non sono asset di runtime e quindi non appartengono alla directoryOutDir per impostazione predefinita.

Se si dispone di una logica di compilazione personalizzata ed è necessario modificare gli assembly di riferimento, usare la proprietà TargetRefPath per ottenere il percorso corretto.

Se un sistema esterno richiede l'assembly di riferimento in OutDir, impostare la proprietà MSBuild ProduceReferenceAssemblyInOutDir su true nel file di progetto.