Share via


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 buildo .
artefatos\obj\MyApp\debug O caminho de saída intermediário para um projeto simples quando você executa dotnet buildo .
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 optar pelo formato de caminho de saída centralizado, adicione uma das seguintes propriedades MSBuild ao arquivo Directory.Build.props :

  • Para usar o local de saída padrão, defina a UseArtifactsOutput propriedade como true.

    <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 a ArtifactsPath 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>