Layout de 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 compilação. Todos os resultados de construção de todos os projetos são reunidos em um local comum, separados por projeto. Um local comum torna mais fácil para as ferramentas antecipar onde encontrar as saídas.
Por padrão, o local comum é um diretório chamado artifacts ao lado do arquivo Directory.build.props . A estrutura de pastas sob a 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 | Description | Exemplos |
---|---|---|
Tipo de produção | Categorias de saídas de compilação, 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 |
Pivot | Distingue entre compilações de um projeto para diferentes configurações, estruturas de destino e identificadores de tempo de execução. Se forem necessários vários elementos, eles serão unidos por um sublinhado (_ ). Pode ser personalizado usando a ArtifactsPivots propriedade MSBuild. |
debug , debug_net8.0 , release , release_linux-x64 |
Exemplos
A tabela a seguir mostra exemplos de caminhos que podem ser criados.
Caminho | Description |
---|---|
artefatos\bin\MyApp\debug | O caminho de saída de compilação para um projeto simples quando você executa dotnet build o . |
artefatos\obj\MyApp\debug | O caminho de saída intermediário para um projeto simples quando você executa dotnet build o . |
artefatos\bin\MyApp\debug_net8.0 | O caminho de saída de compilação para a net8.0 construção de um projeto com vários destinos. |
artefatos\publish\MyApp\release_linux-x64 | O caminho de publicação para um aplicativo simples ao publicar para linux-x64 . |
artefatos\package\MyApp\release | A pasta onde 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 MSBuild ao seu arquivo Directory.Build.props :
Para usar o local de saída padrão, defina a
UseArtifactsOutput
propriedade comotrue
.<PropertyGroup> <UseArtifactsOutput>true</UseArtifactsOutput> </PropertyGroup>
Para definir um local de saída personalizado, adicione uma
ArtifactsPath
propriedade com um valor de (ou o que você quiser que o local da$(MSBuildThisFileDirectory)artifacts
pasta seja). Se você ainda não tiver um arquivo Directory.Build.props , poderá executar o seguinte comando para gerar automaticamente um arquivo que contenha aArtifactsPath
propriedade:dotnet new buildprops --use-artifacts
O ficheiro gerado é semelhante a este:
<Project> <PropertyGroup> <ArtifactsPath>$(MSBuildThisFileDirectory)artifacts</ArtifactsPath> </PropertyGroup> </Project>
O nome da pasta "pivot" assume como padrão uma combinação de moniker da estrutura de destino (TFM), configuração e identificador de tempo de execução (RID). Os que não estão presentes são omitidos. Para personalizar como a pasta "pivot" é nomeada, defina a ArtifactsPivots
propriedade MSBuild para a cadeia de caracteres desejada. Por exemplo:
<PropertyGroup>
...
<ArtifactsPivots>$(ArtifactsPivots)_MyCustomPivot</ArtifactsPivots>
</PropertyGroup>