dotnet build | .NET CLI
- dotnet build | .NET CLI
Tabela de Parâmetros do dotnet build
| Flag curta | Flag longa | Descrição | Exemplo |
|---|---|---|---|
-c | --configuration | Define a configuração de build | -c Release |
-f | --framework | Define o framework alvo (TFM) | -f net8.0 |
-r | --runtime | Define o runtime alvo (RID) | -r linux-x64 |
| — | --no-restore | Ignora o dotnet restore automático | --no-restore |
| — | --no-dependencies | Builda apenas o projeto atual | --no-dependencies |
| — | --no-incremental | Força rebuild completo | --no-incremental |
| — | --self-contained | Gera build self-contained | --self-contained true |
| — | --verbosity | Nível de log (q, m, n, d, diag) | --verbosity minimal |
| — | --arch | Define arquitetura alvo | --arch x64 |
| — | --os | Define sistema operacional alvo | --os linux |
| — | --source | Define fonte de pacotes NuGet | --source https://nuget.org |
| — | --disable-parallel | Desativa build paralelo | --disable-parallel |
| — | --force | Força resolução de dependências | --force |
| — | --interactive | Permite autenticação interativa | --interactive |
| — | --property | Define propriedades MSBuild | --property:Version=1.0.0 |
| — | --output | Define diretório de saída | --output ./build |
🚀 Comando de Build Utilizado
dotnet build <CAMINHO_DO_PROJETO>.csproj `
-c Release `
-o ./bin/release `
/p:Version=$(Build.BuildNumber) `
/p:FileVersion=$(Build.BuildNumber) `
/p:AssemblyVersion=$(Build.BuildNumber) `
/p:InformationalVersion=$(Build.BuildNumber)
Observação: Os parâmetros
$(Build.BuildNumber)são variáveis de ambiente normalmente definidas por ferramentas de CI, como Azure DevOps ou GitHub Actions.
⚙️ Parâmetros MSBuild Utilizados
| Parâmetro | Descrição |
|---|---|
/p:Version | Define a versão principal do projeto/pacote. Usada no dotnet pack e em publicação de NuGet. |
/p:FileVersion | Versão de arquivo exibida nas propriedades do binário (.dll, .exe). |
/p:AssemblyVersion | Usada pelo runtime do .NET para o binding entre assemblies. Afeta a compatibilidade binária. |
/p:InformationalVersion | Versão informativa, pode incluir metadados como -beta ou +build123. Usada em diagnósticos e logs. |
🧩 Outras Propriedades Opcionais
Você pode incluir outras propriedades conforme necessário:
| Propriedade | Exemplo | Descrição |
|---|---|---|
/p:Platform | AnyCPU, x64, x86 | Define a arquitetura alvo. |
/p:DefineConstants | CI;RELEASE | Diretivas de compilação. |
/p:OutputPath | ./bin/release | Caminho de saída do build. |
/p:GenerateAssemblyInfo=false | - | Impede geração automática de AssemblyInfo. Útil se você gerencia manualmente. |
/p:ContinuousIntegrationBuild=true | - | Ativa suporte a CI (como SourceLink). |
/p:Deterministic=true | - | Garante que o build seja determinístico. |
/p:VersionPrefix | 1.0.0 | Prefixo da versão, usado junto com VersionSuffix. |
/p:VersionSuffix | beta, rc1 | Sufixo da versão para pré-lançamentos. |
📦 Estrutura Esperada dos Artefatos
Após o build, os artefatos estarão localizados em:
<raiz_do_projeto>/bin/release/
Os arquivos .dll, .pdb e .deps.json conterão as versões conforme definidas nos parâmetros.
🧪 Exemplo de Integração com Azure DevOps
- task: DotNetCoreCLI@2
displayName: 'Build com Versionamento'
inputs:
command: 'build'
projects: '**/*.csproj'
arguments: >
-c Release
/p:Version=$(Build.BuildNumber)
/p:FileVersion=$(Build.BuildNumber)
/p:AssemblyVersion=$(Build.BuildNumber)
/p:InformationalVersion=$(Build.BuildNumber)
📝 Observações
- Certifique-se de que o
Build.BuildNumberesteja em formato válido (major.minor.build.revision), como1.0.2301.0. - Se for usar Git para versionamento, considere extrair o número de versão via
git describeougit tag.