Layout da saída de artefatos
No .NET 8 e versões posteriores, há uma opção para simplificar o caminho de saída e a estrutura de pastas para saídas de build. Todas as saídas de build de todos os projetos são coletadas em um local comum, separadas por projeto. Um local comum facilita a criação de ferramentas para prever onde encontrar as saídas.
Por padrão, o local comum é um diretório chamado artefatos ao lado do arquivo Directory.build.props. A estrutura de pastas na pasta de artefatos raiz é a seguinte:
📁 artifacts
└──📂 <Type of output>
└──📂 <Project name>
└──📂 <Pivot>
A tabela a seguir mostra os valores padrão para cada nível na estrutura de pastas. Você pode substituir os valores, bem como o local padrão, usando propriedades no arquivo Directory.build.props.
Nível da pasta | Descrição | Exemplos |
---|---|---|
Tipo de saída | Categorias de saídas de build, como binários, arquivos intermediários/gerados, aplicativos publicados e pacotes NuGet. | bin , obj , publish , package |
Nome do projeto | Separa a saída por cada projeto. | MyApp |
Dinâmico | Diferencia entre os builds de um projeto para diferentes configurações, estruturas de destino e identificadores de runtime. Se vários elementos forem necessários, eles serão unidos por um sublinhado (_ ). Pode ser personalizado usando a propriedade ArtifactsPivots do MSBuild. |
debug , debug_net8.0 , release , release_linux-x64 |
Exemplos
A tabela a seguir mostra exemplos de caminhos que podem ser criados.
Caminho | Descrição |
---|---|
artifacts\bin\MyApp\debug | O caminho de saída de build para um projeto simples quando você executa dotnet build . |
artifacts\obj\MyApp\debug | O caminho de saída intermediário para um projeto simples quando você executa dotnet build . |
artifacts\bin\MyApp\debug_net8.0 | O caminho de saída de build para o build net8.0 de um projeto de vários destinos. |
artifacts\publish\MyApp\release_linux-x64 | O caminho de publicação de um aplicativo simples ao publicar para linux-x64 . |
artifacts\package\MyApp\release | A pasta em que a versão .nupkg é criada para um projeto. |
Como configurar
Para aceitar o formato de caminho de saída centralizado, adicione uma das seguintes propriedades do MSBuild ao arquivo Directory.Build.props:
Para usar o local de saída padrão, defina a propriedade
UseArtifactsOutput
comotrue
.<PropertyGroup> <UseArtifactsOutput>true</UseArtifactsOutput> </PropertyGroup>
Para definir um local de saída personalizado, adicione uma propriedade
ArtifactsPath
com um valor de$(MSBuildThisFileDirectory)artifacts
(ou o que você quiser que o local da pasta seja). Se você ainda não tiver um arquivo Directory.Build.props, poderá executar o seguinte comando para gerar automaticamente um arquivo que contém a propriedadeArtifactsPath
:dotnet new buildprops --use-artifacts
O arquivo gerado é semelhante a este:
<Project> <PropertyGroup> <ArtifactsPath>$(MSBuildThisFileDirectory)artifacts</ArtifactsPath> </PropertyGroup> </Project>
O nome da pasta "pivot" usa como padrão uma combinação de Moniker da Estrutura de Destino (TFM), configuração e identificador de runtime (RID). Qualquer um que não esteja presente é omitido. Para personalizar como a pasta "pivot" é nomeada, defina a propriedade ArtifactsPivots
do MSBuild como a cadeia de caracteres desejada. Por exemplo:
<PropertyGroup>
...
<ArtifactsPivots>$(ArtifactsPivots)_MyCustomPivot</ArtifactsPivots>
</PropertyGroup>