Azure DevOps Создание отсутствующей ссылки на сборку - PullRequest
2 голосов
/ 17 мая 2019

У меня есть процесс сборки на DevOps Azure, который я успешно собирал некоторое время.

Недавно один из моих разработчиков добавил страницу, содержащую библиотеку MVC

using System.Web.Mvc

Однако сборка продолжает давать сбой, когда я собираю ее с помощью агента сборки Azure DevOps в рамках нашего процесса CI / CD.

ClassName.cs (5,18): Ошибка CS0234: имя типа или пространства имен 'Mvc' не существует в пространстве имен 'System.Web' (вам не хватает ссылки на сборку?)

Он компилируется, если я компилирую вручную с использованием Visual Studio 2017 на своем ноутбуке или если я использую Visual Studio 2017 на компьютере сборки, на котором работает агент сборки Azure DevOps.

Действия, которые я пытался устранить:

  • Убедитесь, что в моем проекте NuGet у меня установлена ​​последняя версия Microsoft.Aspnet.MVC. vesrion.
  • Я пытался переустановить Microsoft.Aspnet.MVC при сборке
    машина через NuGet
  • Я подтвердил пакет по умолчанию для моего проекта
    Формат управления: Packages.config
  • Я проверил, что мой packages.config имеет
  • Я пытался переустановить все пакет на моей сборочной машине, запустив Update-Package Команда --reinstall.
  • Я проверил, что на компьютере агента сборки у меня есть папка Microsoft.AspNet.Mvc и все ее библиотеки в repositoryPath -
    $ (Solutiondir) / packages и globalPackagesFolder -
    $ (UserProfile) .nuget \ пакеты

У меня заканчивается идея, почему он компилируется в Visual Studio вручную, но возникает ошибка при компиляции с использованием агента сборки через MS Build на 64-битных битах.

1 Ответ

1 голос
/ 18 мая 2019

Я попытался воспроизвести вашу ошибку, сравнив два новых проекта веб-приложений ASP.NET (.NET Framework), один из которых был создан с пустым шаблоном, а другой - с шаблоном MVC. Проект MVC поставляется со ссылкой System.Web.Mvc, а пустой - нет, поэтому я предложил дополнительные шаги по устранению неполадок при добавлении ссылки в пустой проект вручную.

  • Убедитесь, что файл проекта, который не удается создать, содержит ссылку на пакет Microsoft.AspNet.Mvc, в котором указан путь (используйте последнюю версию)
    <Reference Include="System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
      <Private>True</Private>
      <HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.4\lib\net45\System.Web.Mvc.dll</HintPath>
    </Reference>

Вы можете скопировать это и его из недавно созданного шаблона MVC. Неявная ссылка <Reference Include="System.Web.Mvc" /> будет работать только в том случае, если ранее были сгенерированы артефакты сборки, что может послужить веской причиной для успешного построения сборки и ее сбоя в конвейере сборки.

  • Очистите решение, закройте Visual Studio и удалите все папки bin и obj, чтобы убедиться, что ваша сборка не удалась из-за предыдущих и Visual Studio не создает их заново.

  • Используйте командную строку разработчика для вызова msbuild.exe в папке проекта, это будет среда, более похожая на конвейер сборки, чем сборка с помощью Visual Studio

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