I’m new about Azure DevOps. I have a repo that contains multiple solutions and each solution contains multiple projects. These projects has dependent each other. Projects are target in .net framework 4.7.1. Building all of them in order, get a package for a WPF application.
I would like to create one Azure YAML pipeline but I’m not sure the correct way.
This is my pipeline at the moment:
vmImage: 'windows-latest'
buildConfiguration: 'Release'
- task: NuGetToolInstaller@1
restoreSolution: 'Folder1/Solution_A.sln'
solution: 'Folder1/Solution_A.sln'
msbuildArgs: '/p:AzureBuild=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
solution: 'Folder2/Solution_B/Project_B1.csproj'
msbuildArguments: '/p:AzureBuild=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(Build.ArtifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
SourceFolder: '$(Build.SourcesDirectory)'
Contents: '**binrelease**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'GicoopPlus'
publishLocation: 'Container'
<code>trigger:
- none
#- desarrollo
pool:
vmImage: 'windows-latest'
variables:
buildPlatform: 'x64'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: 'Folder1/Solution_A.sln'
- task: VSBuild@1
inputs:
solution: 'Folder1/Solution_A.sln'
msbuildArgs: '/p:AzureBuild=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: MSBuild@1
inputs:
solution: 'Folder2/Solution_B/Project_B1.csproj'
msbuildArguments: '/p:AzureBuild=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(Build.ArtifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: '**binrelease**'
flattenFolders: false
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'GicoopPlus'
publishLocation: 'Container'
</code>
trigger:
- none
#- desarrollo
pool:
vmImage: 'windows-latest'
variables:
buildPlatform: 'x64'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: 'Folder1/Solution_A.sln'
- task: VSBuild@1
inputs:
solution: 'Folder1/Solution_A.sln'
msbuildArgs: '/p:AzureBuild=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: MSBuild@1
inputs:
solution: 'Folder2/Solution_B/Project_B1.csproj'
msbuildArguments: '/p:AzureBuild=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(Build.ArtifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: '**binrelease**'
flattenFolders: false
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'GicoopPlus'
publishLocation: 'Container'
Solution_B.Project_B1 has dependence on the project Solution_A.Project_A1 and Solution_A.Project_A1 has dependence on the project Solution_A.Project_A2.
When running the pipeline get an error on MsBuild@1 task because not found the Solution_A.Project_A2.dll.
What is the best way to do I need?