Pergunta

Meu BuildBot está em execução há 3 anos usando o Devenv.com para compilar os projetos no Windows.

Agora Devenv.com tem problemas para construir para 64 bits versões: Passando a configuração como "Debug | x64" gera erros da linha de comando por causa do caractere do tubo. Escapar e envolver entre aspas resultam em outros erros, alguns por causa dos espaços nos nomes de diretórios, alguns por causa da linha de comando estranhamente entendida.

Eu tentei vcbuild.exe e msbuild.exe. vcbuild.exe funciona perfeitamente: eu gostaria de cumpri -lo. Msbuild.exe, do outro lado, tem uma produção completamente estranha e complicada que meus colegas de trabalho parecem terríveis. Mas é apontado em todos os lugares como A maneira de construir.

A pergunta é: qual de Devenv.com, vcbuild.exe e msbuild.exe é o método que provavelmente durará a tempo?

Foi útil?

Solução

O MSBuild (antes do Visual Studio 2010/.NET 4) não cria projetos C ++. Ele chama para vcbuild.exe. Portanto, se você estiver feliz por não usar o MSBuild, eu seguiria isso para os projetos C ++. Para projetos gerenciados (e para C ++ usando o VS 2010), use o MSBuild.

Outras dicas

O MSBuild é o método "com maior probabilidade de durar". Vcbuild.exe está morto; Seu último lançamento foi 2008. O MSBUILD 4.0 ainda o usará, se precisar construir um projeto de VC a partir do VS2008 ou anterior. Quanto a Devenv.exe - é claro, é apenas o Visual Studio sem cabeça. Funcionalmente, é o mesmo que acertar a construção em vs. Isso significa que hoje em dia, é essencialmente apenas entregar ao msbuild, mas às vezes com menos paralelismo do que o msbuild.exe receberá. A principal razão pela qual você ainda precisa usar o Devenv.exe são projetos .vdproj (implantação). Essas coisas herdadas têm um processo de construção codificado em vs. Eu recomendo uma alternativa como Wix ou InstallShield, baseada em MSBuild. Não há muito tempo até que tudo seja construído no VS é o msbuild.

Em resumo - o msbuild é o futuro, use -o, a menos que você tenha projetos de implantação ou outras circunstâncias especiais.

Dan

Encontrei o mesmo problema e resolvi-o com o Windows-Shell-Escapando o Personagem do Pipe:

"Debug^|Win32"

msbuild.exe não sabia (não?) Como criar projetos de configuração. Devenv.exe faz.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top