¿Cuál es la manera indolora/sostenible de usar MSBuild como su corredor de compilación? (Perdonar la longitud de esta publicación)Buenas prácticas: cómo volver a utilizar los archivos .csproj y .sln para crear su secuencia de comandos MSBuild para CI?
Estaba probando suerte en TeamCity (que debo decir que es impresionante la curva de aprendizaje de w.r.t y la funcionalidad lista para usar). Tengo un combo SVN> MSBuild> NUnit> NCover funcionando.
Tenía curiosidad sobre cómo los proyectos moderados a grandes están usando MSBuild - Acabo de señalar MSBuild a mi archivo sln principal. He pasado algún tiempo con NAnt hace algunos años y me pareció que MSBuild es un poco obtuso. Los documentos son demasiado densos/detallados para un principiante.
MSBuild parece tener algo de magia especial para manejar archivos .sln; Intenté escribir a mano una secuencia de comandos de compilación, vinculando/incluyendo archivos .csproj en orden (de modo que pudiera tener tareas de compilación previas a la publicación). Sin embargo, vomitó (citando importaciones objetivo duplicadas). Supongo que la mayoría de los desarrolladores no querrían meterse con los archivos msbuild proj; harían cambios en los archivos .csproj y .sln. ¿Hay alguna herramienta/tarea de MSBuild que realice ingeniería inversa de un nuevo script de un .sln existente + sus archivos .csproj que desconozco?
Si estoy usando MSBuild solo para hacer el paso de compilación, ¿podría usar Nant con una tarea ejecutiva a MSBuild para compilar la solución? Tengo esta sensación persistente de que me estoy perdiendo algo obvio.
Mi objetivo final aquí es tener un script de MSBuild
- que se basa la solución
- que actúa como un script de compilación en lugar de un paso de compilación. Permite tareas pre/post personalizadas. (por ejemplo, call nunit para ejecutar un proyecto nunit (que parece no ser compatible aún con la interfaz de usuario web de teamcity))
- se mantiene alejado de los desarrolladores que realizan cambios en la solución. Sin redundancia; no debería exigir a los desarrolladores que realicen el mismo cambio en 2 lugares
¿Mi solución es útil para usted, o está más interesado en algo específico para TeamCity? – Filburt
@Filburt - Lo siento ... se desvió/necesito algo más de tiempo para ponerme manos a la obra con la publicación del blog de Sayed - Creo que lo que estaba buscando era la tarea ''. Fork msbuild desde el script principal. Mi principal necesidad era evitar la duplicación de la configuración de solución/proj en una secuencia de comandos de construcción, pero aún así poder agregar tareas personalizadas de construcción previa/posterior. –
Gishu