Не удалось загрузить тип Microsoft.WindowsAzure.Storage.Blob.CloudAppendBlob из сборки Microsoft.WindowsAzure.Storage, Version = 4.3.0.0.

Я выполняю настраиваемое действие в фабрике данных Azure, когда я пытаюсь работать с CloudAppendBlob, возникает следующее исключение. Похоже, проблема с версией, но не удается найти способ исправить. Я скомпилировал код с помощью Windows Azure Storage 7.0.0. Пожалуйста помоги!

Неизвестная ошибка в модуле:

System.Reflection.TargetInvocationException: исключение было выброшено целью вызова. ---> System.TypeLoadException: не удалось загрузить тип Microsoft.WindowsAzure.Storage.Blob.CloudAppendBlob из сборки Microsoft.WindowsAzure.Storage, Version = 4.3.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35. в MyDotNetActivity.SampleActivity.Execute (наборы данных IEnumerable1 linkedServices, IEnumerable1, активность активности, регистратор IActivityLogger) в Microsoft.Azure.Management.DataFactories.Runtime.ActivityExecutor.Execute (задание объекта, конфигурация строки, действие`1 logAction) --- конец внутреннего стека исключений trace --- в System.RuntimeMethodHandle.InvokeMethod (цель объекта, аргументы Object [], сигнатура сигнатуры, логический конструктор) в System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (объект obj, параметры Object [], аргументы Object []) в System. Reflection.RuntimeMethodInfo.Invoke (Object obj, BindingFlags invokeAttr, Binder binder, параметры Object [], культура CultureInfo) в Microsoft.DataPipeline.Compute.HDInsightJobExecution.ReflectingActivityWrapper.Execute () в f: _Bld10 \ 12752 \ 4 Common \ Compute \ src \ HDIComputeDelegatorJob \ ReflectingActivityWrapper.cs: строка 44 в Microsoft.DataPipeline.Compute.HDInsightJobExecution.JobWrapper.RunJob () в f: _Bld \ 12752 \ 4106 \ Source s \ Product \ Common \ Compute \ src \ HDIComputeDelegatorJob \ JobWrapper.cs: строка 94 в Microsoft.DataPipeline.Compute.HDInsightJobExecution.Launcher.Main (String [] args) в f: _Bld \ 12752 \ 4106 \ Sources \ Product \ Common \ Compute \ src \ HDIComputeDelegatorJob \ Launcher.cs: строка 78.


person Venkataramana    schedule 23.06.2016    source источник
comment
Вы уверены, что используете версию библиотеки 7.0.0.0? Из-за ошибки кажется, что вы используете 4.3.0.0.   -  person Gaurav Mantri    schedule 23.06.2016
comment
Похоже, вам нужно обновить привязку сборки вашего проекта.   -  person yonisha    schedule 23.06.2016
comment
Где вы запускаете свое приложение? Возможно, у вас уже есть версия 4.3.0.0 в GAC, и ваше приложение загружает ее оттуда.   -  person Oxoron    schedule 15.07.2016
comment
Я запускаю приложение в Azure, вот ссылка, по которой я перехожу azure.microsoft.com/en-in/documentation/articles/, а пример для добавления большого двоичного объекта находится здесь azure.microsoft.com/en-in/documentation/articles/   -  person Venkataramana    schedule 18.07.2016


Ответы (2)


Я сам столкнулся с той же проблемой. Оказалось, что фабрика данных Azure ограничена версией 4.3 Microsoft.WindowsAzure.Storage. Чтобы загрузить другую версию, вам следует взглянуть на CrossAppDomainDotNetActivitySample от Microsoft .

Из ридми:

Этот пример позволяет вам создать пользовательское действие .NET для ADF, которое не ограничено версиями сборки, используемыми средством запуска ADF (например, WindowsAzure.Storage v4.3.0, Newtonsoft.Json v6.0.x и т. Д.).

Код включает абстрактный базовый класс (CrossAppDomainDotNetActivity), который реализует изоляцию домена приложения и образец производного класса (MyDotNetActivity), демонстрирующий использование WindowsAzure.Storage v6.2.0.

Примечание. Общедоступные типы, предоставляемые ADF SDK, не могут быть сериализованы через границы домена приложения. Таким образом, производный класс должен предоставлять логику предварительного выполнения (PreExecute) для обработки объектов ADF в сериализуемый объект, который затем передается в основную логику (ExecuteCore).

person Mitchell Burton    schedule 24.08.2016

В свой app.config добавьте следующий перенаправление привязки сборки:

  <dependentAssembly>
    <assemblyIdentity name="Microsoft.WindowsAzure.Storage" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0"/>
  </dependentAssembly>

Если впоследствии вы столкнулись с другими подобными проблемами, добавьте также перенаправления привязки сборок для этих сборок.

person Zhaoxing Lu    schedule 24.06.2016
comment
Спасибо за ответ, но исключение сохраняется даже после добавления перенаправления привязки сборки. И мой app.config имеет код - person Venkataramana; 24.06.2016
comment
'‹? Xml version = 1.0 encoding = utf-8?› ‹Configuration› ‹runtime› ‹AssemblyBinding xmlns = urn: schemas-microsoft-com: asm.v1› ‹dependentAssembly› ‹название сборки = Microsoft.WindowsAzure.Storage publicKeyToken = 31bf3856ad364e35 культура = нейтральный / ›‹ bindingRedirect oldVersion = 0.0.0.0-7.0.0.0 newVersion = 7.0.0.0 / ›‹/dependentAssembly› ‹/assemblyBinding› ‹/runtime› ‹startup›‹ supportedRuntime version = v4.0 sku = .NETFramework , Версия = v4.5 / ›‹/startup› ‹/configuration› ' - person Venkataramana; 24.06.2016