Respuesta

19

Básicamente devenv (Visual Studio) ajusta MSBuild y agrega muchas propiedades específicas de Visual Studio.

Para usar devenv necesita Visual Studio instalado en su computadora. Para usar MSBuild solo necesita tener .NET framework.

7

Para nosotros, la principal diferencia es que devenv se encargará de los proyectos del instalador (* .vdproj) mientras que msbuild no lo hará. Si recuerdo correctamente, msbuild es mucho menos permisivo cuando se trata de encontrar ensambles referenciados (especialmente si las rutas están un poco apagadas).

+1

1 para la señalización vdproj proyecto. En cuanto a la búsqueda de dependencia, creo que es lo mismo para VS y MsBuild, como se define en Microsoft.Common.Targets (ver aquí: http://www.beefycode.com/post/Resolving-Binary-References-in-MSBuild .aspx) –

+2

He visto casos en los que se creará una solución en VisualStudio, pero no directamente desde msbuild debido a que los ensamblajes no están en la ubicación correcta. VisualStudio parece hacer una búsqueda en el árbol de códigos y corregirá los problemas de ruta. Asumí que devenv.exe haría la misma corrección automática, pero puede que ese no sea el caso. – Pedro

5

Una de las cosas que descubrimos que nos mudamos a TFS (que utiliza msbuild, al menos como lo tenemos configurado) de VSS/CruiseControl.NET (que yo supongo devenv utilizado en nuestra configuración) es que a veces el ProjectGuids no se sincroniza.

Por lo tanto, el Proyecto A hace referencia al Proyecto B y el archivo de proyecto o solución para el Proyecto A tiene el ProjectGuid y la ruta al archivo de proyecto del Proyecto B. Sin embargo, por cualquier motivo, ProjectGuid del Proyecto B ha cambiado y el proyecto o archivo de solución del Proyecto A no se actualizó para reflejar esto.

Devenv está bien porque simplemente usa la ruta de archivo al archivo de proyecto del Proyecto B o vuelve a caer en él. Msbuild, sin embargo, se detiene en este punto porque si los ProjectGuids no coinciden es un no-go. En este punto, puede corregirlo en Visual Studio (I think eliminando y volviendo a agregar las obras del proyecto) o manualmente a través del Bloc de notas o algo así.

Lo dejo a usted para decidir cuál es la mejor (la adherencia estricta a la ProjectGuid o indulgencia cuando se conoce la ruta de acceso al proyecto)

Cuestiones relacionadas