Como posso fazer com que o msbuild faça uma construção completa de um projeto Delphi equivalente a DCC32 -B?
Pergunta
Como posso fazer com que o msbuild faça uma construção completa de um projeto Delphi equivalente a DCC32 -B?
Eu tenho dois projetos que estou tentando construir, o primeiro usa algumas defines condicionais, que estão sendo passadas via msbuild para o DCC32. No entanto, algumas unidades comuns parecem estar presas com o primeiro conjunto de condicionais, portanto o segundo projeto é construído de maneira inadequada.
Solução
Eu acredito que é /t: reconstruir, a saída MSBuild lista "Excluindo o arquivo: ..." para todos os DCUs e depois constrói o projeto.
Eu uso um arquivo em lote para ligar para o msbuild para construir projetos Delphi, para Delphi 2007 e Delphi 2009 (que apenas tem um caminho diferente para %BDS%
):
set DCC_Quiet=true
set BDS=%ProgramFiles%\CodeGear\RAD Studio\5.0
set MSBuildBinPath=%WinDir%\Microsoft.NET\Framework\v2.0.50727
call %MSBuildBinPath%\msbuild /nologo /t:rebuild /p:config=Release %1 %2 %3 %4 %5
Observe, de essa questão, para lançamento "Build Configuration", Delphi 2009 é /p:config=Release
, e Delphi 2007 é /p:Configuration=Release
]
Outras dicas
Eu acho a pergunta Delphi msbuild construir configurações da linha de comando contém a resposta. Tentar
msbuild /target:Build
Como me lembro em D7, houve um problema semelhante quando a GUI vs DCC32 produziu diferentes construções. Dê uma olhada no local e no conteúdo do (s) arquivo (s) DCC32.CFG. Na verdade, eles podem conter tantos condicionais necessários. Um por linha condicional
Outra opção é excluir os DCUs das unidades compiladas após a conclusão da sua primeira compilação e antes de iniciar o próximo.
Com meu Rad Studio 2010 Professional, /t:rebuild
não está definido. imaginei
MSBuild.exe /t:Build /p:config=Release;DCC_BuildAllUnits=true
faz o trabalho