Пакет Azure Не включая связанную DLL проекта с локальным набором копий

У меня есть решение Azure с 4 проектами. (VS2012 на Windows 8, Azure Tools 1.8)

  • Основной проект с общим кодом
  • Передняя часть веб-роли.
  • Роль службы для обслуживания данных (из базы данных SQL Azure)
  • Роль рабочего для запланированных задач

Все ролевые проекты имеют ссылку на основной проект с копией local = true... standard stuff.

Роль веб-сайта и рабочая роль отлично работают, но моя роль службы продолжает застревать в цикле Initializing-Starting-Recycling. Когда я просматриваю службу, я получаю сообщение "Можно отметить файл загрузки или сборку" FileNotFoundException ". Разумеется, RDP на сервер и DLL отсутствует.

Заглянув в файлы пакета локально, другие роли включают в себя отсутствующую DLL, но не роль службы.

Если я VS, чтобы опубликовать роль службы (а не лазурную публикацию) в локальную файловую систему, включается основная dll , доказывая, что настройки VS корректны для локальной копии.

Есть ли какой-либо другой способ из VS для влияния на файлы, которые добавлены в пакет развертывания Azure, или есть простой способ script создания пакета без использования VS?

Ответы

Ответ 1

Как я писал в комментарии, у меня такая же ситуация, как и вы (Windows 7 и 8, VS 2012, Azure SDK 1.8). Копировать Local установлено значение true, но когда я открываю пакет *.cspkg, ссылки в сборках отсутствуют в папке с подходящими адресами. Что я сделал, я создал новый проект "Роль рабочего" и скопировал код из старого. Теперь все сборки включены.

UPDATE: Решение, описанное выше, в моем случае не было действительно необходимым. Реальная проблема для меня заключалась в том, что моя веб-роль случайно ссылалась на мою сборку "Роль рабочего". Когда я удалил эту ненужную ссылку, рабочая роль получила все сборки в пакете. Такое поведение, по моему мнению, ошибочно.

Ответ 2

Я могу подтвердить то, что Антон описывает в своем ответе в параграфе, начиная с "ОБНОВЛЕНИЯ":

У меня был проект библиотеки классов под названием "Utils", "WorkerRole" и проект "WebRole". Оба WorkerRole и WebRole ссылались на Utils. Кроме того, WebRole ссылался на WorkerRole - поскольку последний содержит некоторые классы, которые использовались как сообщения служебной шины.

В результате было установлено, что Utils.dll не был включен в файл .cspkg для облачной службы, и в Visual Studio не было сообщения об ошибке. После помещения классов сообщений в проект Utils и удаления ссылки WebRole- > WorkerRole все было в порядке.

Кажется, это ошибка.