Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 | Descrição | 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. Por defeito, é utilizado o nome do projeto MSBuild. Pode ser personalizado usando a ArtifactsProjectName propriedade MSBuild. |
MyApp |
| Pivô† | 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 |
† A subpasta do nome do projeto é omitida nos caminhos de saída do pacote. Além disso, a subpasta dinâmica inclui apenas a configuração.
Exemplos
A tabela a seguir mostra exemplos de caminhos que podem ser criados.
| Caminho | Descrição |
|---|---|
| artefatos\bin\MyApp\debug | O caminho de saída de compilação para um projeto simples ao executar dotnet build. |
| artefactos\obj\MyApp\debug | O caminho de saída intermediário para um projeto simples ao executar dotnet build. |
| artefatos\bin\MyApp\debug_net8.0 | O caminho de saída de compilação para a net8.0 compilação de um projeto multi-alvo. |
| artefatos\publish\MyApp\release_linux-x64 | O caminho de publicação para uma aplicação simples ao publicar para linux-x64. |
| artefatos\pacote\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
UseArtifactsOutputpropriedade comotrue.<PropertyGroup> <UseArtifactsOutput>true</UseArtifactsOutput> </PropertyGroup>Para definir um local de saída personalizado, adicione um
ArtifactsPathcom um valor de$(MSBuildThisFileDirectory)artifacts(ou qualquer que você queira que seja o local da pasta). Se você ainda não tiver um arquivo Directory.Build.props , poderá executar o seguinte comando para gerar automaticamente um arquivo que contenha aArtifactsPathpropriedade:dotnet new buildprops --use-artifactsO ficheiro gerado é semelhante a este:
<Project> <PropertyGroup> <ArtifactsPath>$(MSBuildThisFileDirectory)artifacts</ArtifactsPath> </PropertyGroup> </Project>
O nome da pasta "pivot" é definido por padrão como uma combinação do identificador do framework de destino (TFM), da configuração e do identificador do 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>
O nome da pasta "nome do projeto" é o nome do projeto MSBuild. Para o personalizar para um projeto específico, defina a ArtifactsProjectName propriedade MSBuild no ficheiro do projeto. Por exemplo:
<PropertyGroup>
<ArtifactsProjectName>CustomProjectName</ArtifactsProjectName>
</PropertyGroup>