Azure - исключить Azure проект функции из конвейера - PullRequest
1 голос
/ 09 мая 2020

Я развертываю свое приложение net core 2.2 с azure pipeline

yml:

trigger:
- dev

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Debug'

steps:
- task: NuGetToolInstaller@1

- task: UseDotNet@2
  displayName: 'Use dotnet sdk 2.2'
  inputs:
    version: 2.x
    includePreviewVersions: false

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

# code coverage
- task: DotNetCoreCLI@2
  inputs:
    command: test
    projects: '**/*Tests/*.csproj'
    arguments: '--configuration $(buildConfiguration) --collect "Code coverage"'


- script: dotnet -d ef -v migrations script --output $(Build.ArtifactStagingDirectory)\SQL\$(scriptName) --context $(dbContext)  --idempotent --project src\WorkFlowManager.EntityFrameworkCore\WorkFlowManager.EntityFrameworkCore.csproj

- task: PublishBuildArtifacts@1

И теперь я добавил в решение функцию azure проект, который я хочу исключить из сборки, потому что этот последний проект разработан с использованием net core 3.1.

Я пытаюсь исключить его из конвейера примерно так:

variables:
  solution: |
    '**/*.sln'
    '!**/*Project.AzureFunction*.csproj'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Debug'

Но сборка не работает:

Starting: VSBuild
==============================================================================
Task         : Visual Studio build
Description  : Build with MSBuild and set the Visual Studio version property
Version      : 1.166.0
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/build/visual-studio-build
==============================================================================
##[error]Solution not found using search pattern ''**\*.sln'
'!**\*WorkFlowManager.Functions.EnelGenerator*.csproj'
'.
Finishing: VSBuild

Есть идеи?

Ответы [ 2 ]

1 голос
/ 11 мая 2020

Чтобы исключить проект функции azure из сборки, вы можете изменить файл решения напрямую, чтобы исключить проект функции azure.

В приведенном ниже примере NUnitTest2.csproj закомментирован в файле решения ( .sln) и будет исключен при построении решения. Вы также можете проверить эту ветку для других обходных путей.

enter image description here

Если вы не хотите изменять файл решения. Вы можете использовать задачу DotNetCoreCLI@2 для сборки всех проектов, кроме azure функционального проекта, как показано ниже (используйте !, чтобы исключить проект).

 - task: DotNetCoreCLI@2
     inputs:
       command: build
       projects: |
         **\*.csproj
         !**\azurefunction.csproj
1 голос
/ 09 мая 2020

Задача VSBuild@1 используется для построения решения VS. Таким образом, вы можете поместить новый проект в отдельное решение в том же репозитории.

Или вы можете использовать задачу DotNetCoreCLI@2 для этапа сборки, которая позволяет вам указывать отдельные проекты или решение для сборки (см. сборка нескольких проектов ).

...