Сбой сборки Azure Devops Предупреждение MSB3245: не удалось разрешить эту ссылку - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь создать конвейер в Azure DevOps и получаю ошибки компиляции, вызванные отсутствующей ссылкой:

[предупреждение] C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets (2110,5): Предупреждение MSB3245: не удалось разрешить эту ссылку. Не удалось найти сборка "Азбука". Убедитесь, что сборка существует на диске. Если эта ссылка требуется вашим кодом, вы можете получить компиляцию ошибки.

У меня есть решение VS2017 с 2 проектами.

  1. ABC, которая является фактическим применением

  2. ABC.UnitTests, где я добавил несколько юнит-тестов (я использую MSTest)

Когда я собираю решение локально, я могу выполнить успешную сборку, выполнив следующие шаги:

  1. Сборка проекта ABC => ABC.dll генерируется

  2. Добавить ссылку в proj ABC.UnitTests на ABC.dll

  3. Построить все решение => Построить успешно

Файл .cs в ABC.UnitTests ссылается на приложение таким образом и генерирует предупреждение выше:

using ABC; 

Если я делаю чистую сборку, где ABC.dll удаляется, а затем я делаю сборку всего решения, я получаю то же предупреждение MSB3245. Таким образом, проблема воспроизводима локально, если dll не существует.

Затем, когда я загружаю решение в DevOps Azure, я делаю следующие шаги.

  1. Загрузите решение с локального VS2017, и в Azure будет создан проект
  2. Создайте проект в Azure DevOps => обнаружена ссылка на проблему

У меня есть файл конфигурации YAML с именем azure-pipelines.yml, который ссылается на размещенный агент 2017.

pool: vmImage: 'vs2017-win2016' 

Переменный поток:

  1. Загрузите решение с локального VS2017, и в Azure будет создан проект
  2. Закомментируйте ссылку на проект ABC.UnitTests из файла sln
  3. Создать конвейер => Построить успешно.

1 Ответ

0 голосов
/ 11 ноября 2018

Вы не должны ссылаться ни на одну DLL, как вы упомянули в комментарии.

Правильный способ - это называть проект. Таким образом, DLL заботится о себе во время сборки

Правильный путь References -> (Правый клик) Add References -> Из этого, используя Projects tab, вы можете выбрать проект, который генерирует эту DLL (сборки)

Вы можете сослаться на это SO

...