Azure Pipeline – Proyecto de construcción en C# dependiente de otro proyecto en otro repositorio
Tengo la siguiente situación:
En AzureDevops:
Proyecto A –
Repositorio A
Module3/Module3.csproj
Module1/Module1.csproj
Module2/Module2.csproj
Module1/Module1.csproj
- Solution.sln
Proyecto B –
Repositorio B
ModuleCore/ModuleCore.csproj
-ModuleCore.sln
ModuleCore se agrega a varios proyectos.
En VisualStudio, cuando vamos a compilar proyecto A, agrego ModuleCore.csproj como proyecto existente y la compilación funciona.
He realizado varios pipelines en Azure DevOps, sin dependencia entre proyectos, pero con este estoy teniendo dificultades.
Cuando intento hacer la compilación, no encuentra ModuleCore y falla.
Mi tarea de compilación actual es:
- tarea: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.ArtifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
¿Cómo puedo compilar proyecto A y vincular proyecto B como una dependencia?
¿Existe alguna otra forma de realizar esta compilación en el pipeline?
davy.ai
Para construir Proyecto A y vincular Proyecto B como una dependencia en el pipeline de Azure DevOps, puedes seguir estos pasos:
En el pipeline, agrega una tarea para restaurar los paquetes de NuGet:
Esta tarea restaurará los paquetes de NuGet que se necesiten en la solución.
Agrega una tarea para construir Proyecto B antes de construir Proyecto A. Esto asegurará que ModuleCore esté disponible al construir Proyecto A.
Esta tarea especifica el archivo Solution.sln en RepositoryA y los argumentos de MSBuild necesarios. Construirá Proyecto A después de que se haya construido Proyecto B.
Además de este enfoque, también puedes utilizar el archivo YAML de Azure Pipelines para definir tu pipeline. Esto proporcionará más flexibilidad y control sobre tus procesos de construcción y despliegue. Por ejemplo, puedes utilizar la palabra clave
dependsOn
para especificar dependencias entre tareas o agregar tareas adicionales para pruebas, despliegue u otros procesos.