En mi último proyecto utilizamos MSBuild como lenguaje de scripting. (¡sí, de verdad!) También escribimos cientos de tareas personalizadas de MSBuild, para las partes que tenían más sentido en C#. (Incluso escribí una tarea de MSBuild para generar el código repetitivo para una tarea de MSBuild. Sí, se consumió solo)¿Cuál es la mejor forma de administrar un árbol de dependencias en .NET?
Aunque no recomiendo a nadie más que tome este mismo enfoque, una de las cosas que me resultó de mucha ayuda fue la gestión de dependencias incorporada. Como era de esperar, fue fácil expresar las relaciones de dependencia y dejar que MSBuild se encargue de satisfacerlas. Por ejemplo, casi todos los pasos de nuestro software requerían que un cierto conjunto de archivos se copiara en una ubicación determinada. Desde aquí se puede escribir:
Step1: CopyFiles
Step2: CopyFiles, Step1
y cuando se ejecuta Step2
, sólo sería copiar los archivos una vez.
Crear y satisfacer un árbol de dependencias es bastante común en el software. Deseo que el equipo de MSBuild tome su código de administración de dependencias, lo desacople de MSBuild y lo mueva al .NET Framework donde cualquiera pueda usarlo. A excepción de eso, , ¿cuál cree que es la mejor opción para administrar dependencias de esta manera?