Cómo configurar CI / CD en TFS – importar dependencies?

Estoy configurando CI en mi proyecto y tengo problemas para instalar algunos files DLL. La configuration es la siguiente: repo se sienta en un server TFSGIT 2015. Configuré un server de compilation (agente) en una máquina virtual. Cuando se ingresa el código, el server de compilation crea, ejecuta las testings, etc. Las comstackciones fallan porque no se pueden encontrar algunos packages / DLL internos (que están ubicados en un server TFS 2010 diferente).

Mi pregunta es: ¿cuál es la mejor manera de resolver esto? Supongo que un enfoque simple es simplemente agregar los files DLL al repository, pero me preguntaba si hay un paso previo a la compilation en el que pueda importar los files DLL del server TFS 2010. ¿Lo haría un simple script de Power Shell?

No estoy familiarizado con la stack de Microsoft, por lo que cualquier orientación / sugerencia sería apreciada. Gracias.

Hay un par de maneras de manejar esto, usted podría:

  1. Cree un package NUGET de la funcionalidad que está utilizando y aloje esto internamente. La ventaja aquí es que está haciendo las cosas de la manera apropiada desde la perspectiva de CICD y manteniendo un control de versiones adecuado para que, en el futuro, pueda asegurarse de que pueda rebuild una instancia exacta de una versión. Cuando haces un paso RESTAURAR NUGET, simplemente puedes agregar los arguments: -source

    • En VSTS / TFS2017 puede agregar su propio feed NUGET.
    • Puedes crear uno simplemente con el código. Hanselman: Creando tu propio Nuget Feed
    • Puede usar un host de terceros.
  2. (Suponiendo que su TFS remoto no almacena construcciones versionadas de estos) Use un paso de compilation para copyr esos files fuera del server TFS remoto en un sistema de control de versiones, aplicando los detalles de la versión como metadatos. De nuevo, la preocupación aquí es poder garantizar completamente que pueda retroceder de manera efectiva en un momento dado.

  3. Utilice Powershell para get un artefacto de versión de construcción específico de su server TFS, aquí hay un script de ejemplo para get la última versión. Si sus proyectos DLL utilizan comstackciones, puede usar esto; esto debería ser trivial para modificar y get una compilation específica. Lo haría a través de algunas variables de compilation, personalmente. Lo más importante a tener en count aquí es el "DropLocation", que será el file para el artefacto. Mike Poulson: Consigue la última compilation conocida a través de Powershell

  4. Utilice directamente un script de Powershell para copyr los datos del otro TFS en un script de compilation. Como mínimo, save esto en su artefacto será suficiente para retroceder, como mínimo, pero me gustaría asegurarme de que puedo build hacia atrás también, especialmente con proyectos más grandes. En caso de que ocurra algo drástico con tu almacenamiento de artefactos. Esta respuesta puede ayudarlo: Copie files del control de versiones de bfs en el directory También hay herramientas de PowerShell para ayudar con esto.

Probablemente haya innumerables maneras de resolver esto, pero mi sugerencia sería dar un paso atrás y diseñarla de la manera correcta; en este caso, quiere asegurarse de que si se está produciendo una creación remota y crear artefactos dependientes, esté gestionándolos adecuadamente y capturándolos en relación con una construcción específica. Es por eso que todavía sugiero utilizar sus propios feeds NUGET.