Gravar assemblies de referência em saída intermediária

O SDK do .NET agora grava assemblies de referência em IntermediateOutputPath em vez do OutDir por padrão. Essa alteração remove esses artefatos somente de tempo de compilação de saídas necessárias em tempo de execução.

Versão introduzida

.NET SDK 6.0.200

Comportamento antigo

Desde que os assemblies de referência foram adicionados, o SDK do .NET escreveu assemblies de referência para o diretório ref no diretório OutDir da compilação. No .NET 5, a propriedade ProduceReferenceAssembly foi introduzida e padronizada para true em net5.0 aplicativos posteriores. Com essa alteração, muitos aplicativos começaram a gerar implicitamente assemblies de referência no diretório OutDir.

Novo comportamento

Agora, os assemblies de referência são gravados no diretório refint do diretório IntermediateOutputPath por padrão, como muitos outros artefatos intermediários.

Motivo da alteração

Os assemblies de referência geralmente não são ativos em tempo de execução e, portanto, não pertencem ao diretório OutDir por padrão.

Se você tiver uma lógica de build personalizada e precisar manipular os assemblies de referência, use a propriedade TargetRefPath para obter o caminho correto.

Se um sistema externo exigir o assembly de referência em OutDir, defina a propriedade DO MSBuild ProduceReferenceAssemblyInOutDir para true no arquivo de projeto.