2016-08-25 8 views
0

Я пытаюсь использовать сборки CI для Visual Studio Team Services, и у меня возникает проблема с классом Ninject, который вызывает вызов WebActivator.Нарушение глобального атрибута WebActivatorEx CI build

Этот код выполняется в пределах моего NinjectWebCommon.cs: enter image description here

Это создает/прекрасно работает локально с помощью Visual Studio. Тем не менее, когда я нажимаю мой проект VSTS и попытаться запустить сборку, я получаю это предупреждение (что неизбежно приводит к ожидаемой ошибке компиляции): enter image description here

Если я закомментируйте глобальные атрибуты показано выше, CI build успешно.

Мне нелегко определить, где именно лежит проблема. Сообщение об ошибке достаточно простое, но тогда в чем разница между сборкой в ​​Visual Studio и VSTS, что позволяет работать в одном месте, а не в другом? Я уверен, что смогу предотвратить эту проблему, вручную разместив вызовы внутри моего Global.asax, но это не то направление, в котором я хочу идти - Ninject использует вызовы WebActivator по какой-то причине.

Спасибо!

ответ

1

Предоставление окончательного ответа было бы затруднительным без проверки вашего фактического проекта и процесса CI.

Проблема в том, что на вашем сервере CI отсутствует сборка WebActivatorEx. Предположим, что ваш сервер CI вытягивает копию решения вниз из системы управления версиями, вот некоторые вещи, которые вы можете проверить:

  1. Убедитесь, что сервер CI работает под управлением NuGet восстановления на решение, прежде чем строить.
  2. В своем веб-проекте дважды проверьте его ссылки и убедитесь, что на WebActivatorEx ссылается путь «packages \ WebActivatorEx», а не путь «\ bin \».
  3. Дважды проверьте файл packages.config в своем веб-проекте и убедитесь, что в списке указан WebActivatorEx. Вот как nuget знает, как восстановить этот пакет для этого проекта.

Если вы очищаете папки с папками и удаляете папку пакетов локально, вы, вероятно, сможете реплицировать проблему на своем компьютере.

+0

Это закончилось тем, что ссылка моего проекта на WebActivatorEx указала на более старую версию (2.0.6), чем мой пакет Nuget (2.1.0). Несмотря на то, что dll не был версией, в какой-то момент я должен вручную сбросить его в корзину, поэтому он работал на моей локальной машине. Короче говоря, ваше предложение очистить мой ящик привело меня по правильному пути. Благодаря! – gerg