Пакет 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 все было в порядке.
Кажется, это ошибка.