Skip to main content

dotnet build | .NET CLI

  • dotnet build | .NET CLI

Tabela de Parâmetros do dotnet build

Flag curtaFlag longaDescriçãoExemplo
-c--configurationDefine a configuração de build-c Release
-f--frameworkDefine o framework alvo (TFM)-f net8.0
-r--runtimeDefine o runtime alvo (RID)-r linux-x64
--no-restoreIgnora o dotnet restore automático--no-restore
--no-dependenciesBuilda apenas o projeto atual--no-dependencies
--no-incrementalForça rebuild completo--no-incremental
--self-containedGera build self-contained--self-contained true
--verbosityNível de log (q, m, n, d, diag)--verbosity minimal
--archDefine arquitetura alvo--arch x64
--osDefine sistema operacional alvo--os linux
--sourceDefine fonte de pacotes NuGet--source https://nuget.org
--disable-parallelDesativa build paralelo--disable-parallel
--forceForça resolução de dependências--force
--interactivePermite autenticação interativa--interactive
--propertyDefine propriedades MSBuild--property:Version=1.0.0
--outputDefine 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âmetroDescrição
/p:VersionDefine a versão principal do projeto/pacote. Usada no dotnet pack e em publicação de NuGet.
/p:FileVersionVersão de arquivo exibida nas propriedades do binário (.dll, .exe).
/p:AssemblyVersionUsada pelo runtime do .NET para o binding entre assemblies. Afeta a compatibilidade binária.
/p:InformationalVersionVersã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:

PropriedadeExemploDescrição
/p:PlatformAnyCPU, x64, x86Define a arquitetura alvo.
/p:DefineConstantsCI;RELEASEDiretivas de compilação.
/p:OutputPath./bin/releaseCaminho 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:VersionPrefix1.0.0Prefixo da versão, usado junto com VersionSuffix.
/p:VersionSuffixbeta, rc1Sufixo 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.BuildNumber esteja em formato válido (major.minor.build.revision), como 1.0.2301.0.
  • Se for usar Git para versionamento, considere extrair o número de versão via git describe ou git tag.