Конвейеры Azure DevOps с использованием YAML - сборка / выпуск каждого проекта на отдельном сервере приложений

У меня есть решение для нескольких проектов (с несколькими веб-проектами, проектом функции Azure и т. Д.). Я хочу иметь возможность создавать каждый проект отдельно и развертывать его в отдельных службах приложений. Я прочитал этот вопрос: Azure DevOps: 1 решение для нескольких проектов CI / CD, и он просит использовать фильтры пути, но не конкретно, как это сделать - есть несколько мест / способов сделать это, и я не уверен, какой из них правильный..

Я пробовал это:

variables:
  solution: '**/MyProject1.csproj'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

Сборка работает, но потом во время publish artifact шаг он говорит мне:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(776,5): Warning : The OutputPath property is not set for project 'MyProject1.csproj'.  Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='Release'  Platform='Any CPU'.  You may be seeing this message because you are trying to build a project without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project.
Project "D:\a\1\s\MyProject1\MyProject1.csproj" on node 1 (default targets).

В нем говорится configuration а также release не существует для проекта, но есть.

Я также пробовал:

trigger:
  branches:
    include:
    - master    
  paths:
    include:
    - MyProject1/*

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

Любые подробности того, что необходимо сделать, приветствуются.

1 ответ

Итак - если у вас есть проекты, которые были созданы в более старой версии Visual Studio (2015 или более ранней), значение платформы установлено на AnyCPU (хотя в раскрывающемся списке написано Any CPU)- в более новых версиях установлено значение Any CPU. Откройте файл.csproj и проверьте, что там находится.