«__built-in-schema.yml (строка: 2012, столбец: 24): ожидаемое сопоставление» после диалога конвейера V2-V3 - PullRequest
0 голосов
/ 02 апреля 2020

ОБНОВЛЕНИЕ: Вот содержимое azure_pipelines.yml:

resources:
  repositories:
  - repository: pf
    type: git
    name: CVX-DevOps/PipelineFramework
    ref: refs/tags/3.6.6
trigger: none

stages:
- template: pipeline.yml@pf
  parameters:
    project:
    - name: "SJVFieldVVAPI" # Must be unique within the list of projects
      type: "msbuild" # Used with Publish/Deploy.  Options: adla, dacpac, dotnet, egg, maven, msbuild, node, nuget, python, sap, ssis
      path: "API" # Project Path
      file: "API.csproj" # Project file
      toolset: "msbuild" # Used with Build/Package.  Options: adla, dotnet, maven, msbuild, node, python, sap, ssis
      playbook: "api-main.yml"
      sonarqube:
        name: scan
        scan: true
        sqExclusions: ""
        additionalProperties: "" #|
#            sonar.branch.name=master
#            sonar.branch.target=master
      fortify: 
        fortifyApp: "GUS-SJV-SJVBU_Verificaiton_and_Validation" 
        fortifyVersion: "SAST-Main"
        sast: true
        dast: false
      buildConfiguration: $(BuildConfiguration) #release, debug
      buildPlatform: $(BuildPlatform) #any cpu, x86, x64
    - name: "SJVFieldVVWebApp" # Must be unique within the list of projects
      type: "msbuild" # Used with Publish/Deploy.  Options: adla, dacpac, dotnet, egg, maven, msbuild, node, nuget, python, sap, ssis
      path: "Web" # Project Path
      file: "Web.csproj" # Project file
      toolset: "msbuild" # Used with Build/Package.  Options: adla, dotnet, maven, msbuild, node, python, sap, ssis
      playbook: "webapp-main.yml"
      sonarqube:
        name: scan
        scan: true
        sqExclusions: ""
        additionalProperties: "" #|
#            sonar.branch.name=master
#            sonar.branch.target=master
      fortify: 
        fortifyApp: "GUS-SJV-SJVBU_Verificaiton_and_Validation" 
        fortifyVersion: "SAST-Main"
        sast: true
        dast: false
      buildConfiguration: $(BuildConfiguration) #release, debug
      buildPlatform: $(BuildPlatform) #any cpu, x86, x64

Я пытаюсь запустить конвейер ADO для. NET Framework 4.7 приложения, которое подверглось преобразованию конвейера V2 в V3. Я получаю следующее сообщение об ошибке, и сборка даже не пытается запустить:

__built-in-schema.yml: Maximum object depth exceeded
__built-in-schema.yml (Line: 2012, Col: 24): Expected a mapping
__built-in-schema.yml: Maximum object depth exceeded
/components/common/utils/nuget-restore.yml@pf: Maximum object depth exceeded
/components/scan/sast/fortify/toolset/msbuild.yml@pf: Maximum object depth exceeded
/components/scan/sast/fortify/fortify.yml@pf: Maximum object depth exceeded
/components/scan/sast/scan-sast.yml@pf: Maximum object depth exceeded
/pipeline-app.yml@pf: Maximum object depth exceeded
/pipeline.yml@pf: Maximum object depth exceeded

Это использует набор инструментов msbuild. У меня есть проект API и проект веб-приложения в решении, поэтому, если я удалил любой из них, а затем запустил конвейер, он проходит этот этап, но зависает от другой ошибки. (На самом деле не обязательно go подробно описывать эту ошибку, потому что это напрямую связано с тем, что я удалил другой проект).

С набором инструментов do tnet он запускается, но затем жалуется на отсутствует ссылка:

> D:\a\1\s\API\API.csproj(350,3): error MSB4019: The imported project "C:\Program Files\dotnet\sdk\3.1.101\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the expression in the Import declaration "C:\Program Files\dotnet\sdk\3.1.101\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets" is correct, and that the file exists on disk.
    0 Warning(s)

Я пытался закомментировать ссылку на Microsoft.WebApplication.targets в файлах .csproj для приложения, но он просто добавляет их обратно, когда я запускаю сборку локально или через конвейер.

Я также пытался изменить пул сборки на VS 2017 и на хостинге Windows 2019 с VS2019, полагая, что цели VS будут доступны в этих пулах, но не повезло.

Я также пытался установить MSBuild.Microsoft.VisualStudio.Web.targets через NuGet, но в итоге получил те же результаты.

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 03 апреля 2020

«__build-schema.yml (строка: 2012, столбец: 24): ожидаемое сопоставление» после диалога конвейера V2-V3

Согласно журналу ошибок:

ошибка MSB4019: не найден импортированный проект "C: \ Program Files \ dotnet \ sdk \ 3.1.101 \ Microsoft \ VisualStudio \ v16.0 \ WebApplications \ Microsoft.WebApplication.targets"

Мы могли бы знать Microsoft.WebApplication.targets, вызванный из do tnet SDK вместо MSBuild. Правильный путь для Microsoft.WebApplication.targets должен быть следующим:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets

Итак, нам нужно использовать набор инструментов MSBuild вместо набора инструментов do tnet. И поскольку он использует MSBuild 16.0, нам нужно использовать пул агентов сборки Hosted Windows 2019 с VS2019 для сборки проекта.

При ошибке Maximum object depth exceeded кажется, ваш файл yaml имеет слишком глубокий путь к файлу Пожалуйста, попробуйте сократить путь к файлу, чтобы увидеть, если это решит проблему.

Если приведенная выше информация не поможет вам, пожалуйста, поделитесь дополнительной информацией о вашей проблеме, например, тип вашего проекта, python проект? И поделитесь своим конвейером сборки (yaml).

Надеюсь, это поможет.

...