Сбой сборки конвейера служб Azure Devops. Успешная сборка через Visual Studio и командную строку msbuild - PullRequest
0 голосов
/ 14 октября 2019

У меня есть решение с двумя проектами, ориентированными на .Net Framework 4. Решение успешно собирается в Visual Studio 2015 и 2017, а также из командной строки msbuild.

Однако при сборке в трубопроводе DevOps Azure со спецификацией агента vs2015-win2012r2 первый проект завершается неудачей со следующими ошибками. Шаг восстановления NuGet показывает, что он успешно установил пакет NuGet EntityFramework 5.0.

The type or namespace name 'Infrastructure' does not exist in the namespace 'System.Data.Entity' (are you missing an assembly reference?)
The type or namespace name 'DbContext' could not be found (are you missing a using directive or an assembly reference?)
The type or namespace name 'DbModelBuilder' could not be found (are you missing a using directive or an assembly reference?)

Когда я изменяю спецификацию агента на vs2017-win2016, первый проект создается без ошибок, но второй проект завершается неудачей со следующими ошибками:

The type or namespace name 'Description' does not exist in the namespace 'System.Web.Http' (are you missing an assembly reference?)
The type or namespace name 'Http' does not exist in the namespace 'System.Net' (are you missing an assembly reference?)
Error CS0234: The type or namespace name 'Http' does not exist in the namespace 'System.Net' (are you missing an assembly reference?)

У меня есть пакет NuGet Microsoft.Asp.Net.WebApi.Core.4.0.20710.0, указанный в файле csproj, который содержит файл System.Web.Http.dll.


Я включил опцию отладки. Вот ссылки на журнал восстановления NuGet https://drive.google.com/open?id=1lJWflXTjYTN_MQyLOnwMUr-8LKoR5JRo

и журнал сборки https://drive.google.com/open?id=1ypAVWxniDLfBOBHc4gODdAoQOCQnphYg

1 Ответ

0 голосов
/ 22 октября 2019

Согласно вашему журналу, появляется предупреждающее сообщение.

warning MSB3267: The primary reference "System.Net.Http", which is a framework assembly, could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.0". To resolve this problem, either remove the reference "System.Net.Http" or retarget your application to a framework version which contains "System.Net.Http". 

Существуют некоторые различия при выполнении команды на локальном компьютере и при запуске сборки или выпуска на агенте. Если агент настроен для работы в качестве службы в Linux, macOS или Windows, он не работает в интерактивном сеансе входа в систему. Без интерактивного сеанса входа в систему взаимодействие с пользовательским интерфейсом и другие ограничения существуют. И есть некоторые шаги по устранению неполадок , которые были предоставлены Microsoft.

Существует простой метод, который можно попытаться устранить ошибку. Удалите ссылку под ссылками проекта, а затем добавьте ее снова. Ссылка была на пространство имен в локальном проекте для решения. По какой-то причине он был найден локально, но не обнаружен при регистрации и построении на VSTS.

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