Visual Studio Встраивает в Azure ошибки конвейера DevOps в Microsoft. NET .Sdk.CrossTargeting.targets - PullRequest
0 голосов
/ 27 марта 2020

Я нахожусь на ранних стадиях миграции своей кодовой базы с. NET Framework на. NET Standard. Я преобразовываю некоторые основополагающие проекты в своем решении в типы проектов SDK с целевыми платформами net462 и netstandard2.0.

Все мои приложения и службы по-прежнему. NET Framework.

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

Когда я компилирую свое решение в Visual Studio 2019, оно компилируется просто отлично. Если я сделаю ручную публикацию sh, это также работает просто отлично. Однако, когда я пытаюсь сделать PR в Azure DevOps, мой CI создает конвейер с ошибками с этой ошибкой:

[error] C: \ Program Files \ dotnet \ sdk \ 3.0.100 \ Sdks \ Microsoft. NET .Sdk \ target \ Microsoft. NET .Sdk.CrossTargeting.targets (27,5): Ошибка: цель «Publi sh» не поддерживается без указания целевой структуры. Текущий проект нацелен на несколько фреймворков, пожалуйста, укажите фреймворк для опубликованного приложения.

Google предлагает, чтобы, если бы я использовал do tnet -publi sh, мне нужно было бы предоставить параметр фреймворка. Однако задача VSBuild, похоже, не поддерживает это.

Соответствующий YAML для моего конвейера:

steps:
- task: VSBuild@1
  displayName: 'Check for Build Errors'
  inputs:
    solution: '$(SolutionName)'
    msbuildArgs: '/target:publish'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    maximumCpuCount: true

И идеи или уточняющие вопросы?

1 Ответ

0 голосов
/ 29 марта 2020

Указывает ли аргумент MSBuild для целевой платформы в msbuildArgs результаты, которые вы ищете?

    msbuildArgs: '/target:publish /p:TargetFramework=net462'

Ссылка для команды dotnet msbuild указывает, что те же самые аргументы MSBuild поддерживаются, и направляет вас (окольным путем ?) здесь , где вы можете увидеть моникеры, используемые для различных целевых структур.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...