2016-10-26 4 views
0

Редактировать: После отправки этого сообщения я определил реальную проблему: MSBuild/TFSBuild не разворачивает .dll 'CopyLocal = true' файлы, если они есть найденных в GAC. В этом случае DLL «System.net.http.formatting» находится в GAC на сервере сборки. Посмотрите here и hereСистема. *. Файлы Http, не скопированные в папку drop by TFS 2015 build-agent

После обновления с TFS с 2012 по 2015 год агент сборки больше не копирует следующие DLL-файлы в места перетаскивания. Как определить, почему агент сборки не копирует эти файлы?

system.net.http.formatting, System.Web.Http.dll или System.Web.Http.WebHost.dll

Деталь

  • У нас есть решение с проектами MVC которые ссылаются на вышеупомянутые DLL.
  • Файлы .csproj используют подсказку для ссылки на файлы в каталоге /packages/.... Я подтвердил, что путь действителен: решение имеет каталог пакетов.
  • Перед обновлением до TFS 2015 при создании решения указанные файлы будут скопированы в папку. Однако они не после обновления.
  • Строка не сработает, однако после обновления TFS 2015 целевой веб-сервер выдает ошибку «файл не найден». (MVC не является и не может быть установлен на целевой веб-сервер)

  • Билд использует 2012 XAML определения построения

  • Глядя на файлы журнала сборки, и ссылаться на DLL-файлы

    CSC.exe ... /reference:D:\B\15...\packages\Microsoft.AspNet.WebApi.Client.4.0.20710.0\lib\net40\System.Net.Http.Formatting.dll

  • build logs показывает, что только версия, созданная TFS 2012, копирует DLL-файл в папку drop. Бревно 2015 сборки не имеет строку, подобную следующей:

    Копирование файла с «D: .. \ пакеты \ Microsoft.AspNet.WebApi.Client.4.0.20710.0 \ Lib \ net40 \ System.Net .Http.Formatting.dll "в" D: .. \ BIN \ EG.WS.EZScan.Web.Intranet \ System.Net.Http.Formatting.dll

  • сервер сборки не был изменен во время обновления кроме переустановки агента сборки. Сервер не был перестроен. Никакие компоненты не были удалены или не добавлены.
  • Проект не обновлялся до более новой версии MVC. Справочная версия проектов 4.0.0.0. Файлы GACed на th Сервер электронной сборки версии 4.0.0.0 (версия файла 4.0.20710.0)

Что еще я должен смотреть.

+0

ли вы по-прежнему использовать XAML сборки в TFS 2015? Почему вы хотите скопировать ссылоченные DLL для удаления местоположения? –

+0

У нас есть настроенная система развертывания. Мы строим наши серверы-разработчики и размещаем контент для серверов разработки/тестирования/производства. На целевых серверах, вероятно, не установлены одинаковые компоненты. Кстати, кажется, что новый шаблон MS/Visual Studio (особенно с ядром) состоит в том, чтобы включать все двоичные файлы при построении/развертывании, а не полагаться на GAC. Надеюсь, MS решит эту проблему в ближайшем будущем. – davewilliams459

ответ

1
  1. С тех пор как вы обновили до TFS 2015, предлагается использовать новую систему сборки, которая полностью отличается от сборки XAML.Проверьте: https://www.visualstudio.com/en-us/docs/build/overview

  2. Кажется, вы по-прежнему проверяете ссылки на dll на TFS, что не предлагается. Вместо этого мы предлагаем восстановить пакеты через диспетчер пакетов, такой как NuGet. Установите флажок «Перенос на автоматическое восстановление» на веб-сайте https://docs.nuget.org/ndocs/consume-packages/package-restore#msbuild-integrated-restore

  3. Если вы начинаете использовать новую систему сборки, вы можете просто включить задачу восстановления NuGet Packages в определение перед любой задачей сборки. Подробная информация о пакете NuGet восстановления, пожалуйста, проверьте https://docs.nuget.org/ndocs/consume-packages/package-restore

enter image description here

+0

Спасибо за ваш ответ. Хотя обновление до сборки XAML находится в нашем списке, в настоящее время это не вариант. У нас есть сложный процесс сборки, включая индивидуальное отслеживание меток сборки и развертывание приложения. Можно ли запустить NuGet через проект XMAL? – davewilliams459

+0

Да, проверьте вариант 2. –