Съответните зависимости (DLL) не се копират при внедряване с помощта на Visual Studio 2013

В една от уеб задачите, които внедрявам, препращам към една от моите библиотеки с класове (Core), която се грижи за изпълнението на някакъв процес (в този случай изпращане на имейл чрез SendGrid).

Когато разположих моите уеб задания ръчно (качване на .zip файл), всичко работи добре. Почистих внедряването и внедрих повторно с помощта на Visual Studio 2013 и уеб заданието започна да има проблеми. Основният проблем тук е, че той търси SendGrid dll, който е посочен от моята библиотека от класове Core, а не моето приложение Console, и не го завършва, като извежда следната грешка:

„Необработено изключение: System.IO.FileLoadException: Не може да се зареди файл или сборка „SendGrid.... Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed“ или една от нейните зависимости. Дефиницията на манифеста на локализираната сглобка не съвпада справката за асемблиране. (Изключение от HRESULT: 0x80131040)"

Влязох по FTP в уебсайта и открих, че всъщност модулът SendGrid не е там, където е моят WebJob.

Въпросът ми е: има ли начин да принудя тези зависимости да се копират в правилната директория при внедряване с помощта на VS 2013?

Благодаря,


person lopezbertoni    schedule 16.09.2014    source източник


Отговори (3)


Аз съм член на екипа, който включи инструментите на WebJobs в актуализацията през лятото на 2013 г. и мога да ви уведомя, че сме наясно с този проблем и сме проверили корекция за него за следващата актуализация, която излиза скоро. Междувременно заобиколното решение е да зададете референции за сглобяване на сглобките, от които се нуждаете - само пакетите NuGet ще решат този проблем - и да публикувате отново. Всъщност използваме пакет NuGet, за да направим нашата логика за внедряване на WebJobs в СРЕЩУ. След като пуснем актуализацията, ще пуснем и NuGet (който сега преминава през финално тестване), така че клиентите на летните и есенни актуализации ще имат този проблем смекчен.

person brady gaster    schedule 16.09.2014
comment
Благодаря за информацията Брейди. Има ли конкретно място, където мога да докладвам проблеми? Имах проблема с папките с решения, които не работят (stackoverflow.com/questions/25810050/) и също така, когато внедрявам в уебсайт, трябва ръчно да добавя низа за връзка на AzureJobsDashboard в Azure, вместо да ги поставя в моето решение низ за връзка и го публикувайте. Благодаря отново. - person lopezbertoni; 16.09.2014
comment
Имаме няколко различни форума, които можете да използвате, а също така разполагаме с нашите инструменти за MS Connect онлайн, които ви позволяват да подавате проблеми с нас. Свързването е най-добрият начин, тъй като проблемите на клиентите ни насочват към подходящите екипи. - person brady gaster; 18.09.2014
comment
Благодаря ви, ще регистрирам проблемите, които открих чрез предложения инструмент. - person lopezbertoni; 18.09.2014
comment
@bradygaster Има ли нещо специално за nuget пакетите в този сценарий или мога просто да добавя скучни стари редовни препратки към асемблиране (с copy local = true)? - person Howiecamp; 22.09.2014
comment
@bradygaster RC 1.0 решава ли този проблем? Току-що го пробвах и не ми се получи, затова питам. Но може би правя нещо нередно. - person lopezbertoni; 24.09.2014
comment
Това ще реши ли същия проблем, ако са необходими други файлове в изходната папка, като изгледи на Razor за Postal? - person Dave Van den Eynde; 04.01.2015
comment
Има ли новини кога ще бъде налична тази следваща актуализация? Изпитвам същия проблем с текущо внедряване на WebJob. - person Ozzy; 27.03.2015
comment
Имам проблем по време на публикуване, че целта ResolveWebJobFiles не съществува в проекта и още един за конфликта на версията на Microsoft.Azure.Storage.dll, получаващ се от NuGet. Вашият отговор просто ми напомня, че съм изтрил Microsoft.Web.WebJobs.Publish. Поправено чрез повторно инсталиране на пакета за публикуване. - person Yang C; 31.03.2015

Изглежда, че това е известна грешка от Microsoft и за съжаление не изглеждат твърде нетърпеливи да го поправят. Възможни решения:

  1. Можете или ръчно да го копирате
  2. Създайте събитие за изграждане, за да го копирате
  3. Изглежда някои хора са имали късмет да добавят нещо подобно var t = typeof(ThirdParty.SomeClass);
person Nicolas    schedule 03.03.2016

Реших проблема си, като направих следното.

  1. Задайте вашите референтни сборки „Копиране локално -> Вярно“
  2. Задайте конфигурациите на вашето решение на „Освобождаване“
person francorobles    schedule 30.04.2015