Pregunta

Mi buildBot se ha estado ejecutando durante 3 años usando Devenv.com para compilar los proyectos en Windows.

Ahora Devenv.com tiene problemas para construir para versiones de 64 bits: pasar la configuración como "depuración | x64" genera errores de línea de comandos debido al carácter de la tubería. Escapar y encerrar entre citas da como resultado otros errores, algunos debido a los espacios en los nombres de los directores, algunos debido a la línea de comandos extrañamente entendida.

Probé tanto vcbuild.exe como msbuild.exe. VCBuild.exe funciona perfectamente: me gustaría seguirlo. Msbuild.exe, por otro lado, tiene una producción completamente extraña y complicada que mis compañeros de trabajo se sienten terribles. Pero se promociona en todas partes como LA forma de construir.

La pregunta es: ¿Cuál de Devenv.com, vcbuild.exe y msbuild.exe es el método que es más probable que dure en el tiempo?

¿Fue útil?

Solución

MSBuild (antes de Visual Studio 2010/.NET 4) no crea proyectos C ++. Llama a VCBuild.exe. Entonces, si está contento de no usar MSBuild, me quedaría con eso para los proyectos C ++. Para proyectos administrados (y para C ++ usando VS 2010) use MSBuild.

Otros consejos

MSBuild es el método "con mayor probabilidad de durar". Vcbuild.exe está muerto; Su último lanzamiento fue 2008. MSBuild 4.0 aún lo usará, si necesita construir un proyecto de VC a partir de VS2008 o antes. En cuanto a Devenv.exe, por supuesto, es solo Visual Studio sin cabeza. Funcionalmente es lo mismo que presionar la construcción en vs. Eso significa que en estos días, esencialmente es solo entregar a MSBuild, pero a veces con menos paralelismo que MSBuild.exe obtendrá. La razón principal por la que aún puede tener que usar Devenv.exe son los proyectos .vdproj (implementación). Estas cosas heredadas tienen un proceso de construcción codificado en vs. Recomiendo una alternativa como WIX o InstallShield que se basan en MSBuild. No hace mucho tiempo hasta que todo se acumule en vs es msbuild.

En resumen: MSBuild es el futuro, úselo a menos que tenga proyectos de implementación u otras circunstancias especiales.

Dan

Me encontré con el mismo problema y lo resolví con Windows-Shell que envía el carácter de la tubería:

"Debug^|Win32"

MSBuild.exe no (¿no?) Sabe construir proyectos de configuración. Devenv.exe sí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top