![](/img/trans.png)
[英]Could not load file or assembly 'Microsoft.WindowsAzure.Storage' Azure Functions
[英]Could not load type 'Microsoft.WindowsAzure.Storage.Blob.CloudAppendBlob' from assembly 'Microsoft.WindowsAzure.Storage, Version=4.3.0.0
我正在Azure数据工厂中运行自定义活动,当我尝试使用CloudAppendBlob时,会发生以下异常。 它看起来像版本问题,但无法找到解决方法。 我使用Windows Azure Storage 7.0.0编译了代码。 请帮忙!
模块中的未知错误:
System.Reflection.TargetInvocationException:调用目标抛出了异常。 ---> System.TypeLoadException:无法从程序集“Microsoft.WindowsAzure.Storage,Version = 4.3.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”加载类型“Microsoft.WindowsAzure.Storage.Blob.CloudAppendBlob”。 at MyDotNetActivity.SampleActivity.Execute(IEnumerable
1 linkedServices, IEnumerable
1数据集,活动活动,IActivityLogger记录器),位于Microsoft.Azure.Management.DataFactories.Runtime.ActivityExecutor.Execute(对象作业,字符串配置,Action`1 logAction)---内部异常堆栈跟踪的结束---在System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj,Object []参数,Object []的System.RuntimeMethodHandle.InvokeMethod(Object target,Object []参数,Signature sig,Boolean构造函数)中在System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object []参数,CultureInfo文化)中的参数)在f:_Bld \\ 12752 \\ 4106中的Microsoft.DataPipeline.Compute.HDInsightJobExecution.ReflectingActivityWrapper.Execute() \\ Sources \\ Product \\ Common \\ Compute \\ src \\ HDIComputeDelegatorJob \\ ReflectingActivityWrapper.cs:第44行,位于f:_Bld \\ 12752 \\ 4106 \\ Sources \\ Produc中的Microsoft.DataPipeline.Compute.HDInsightJobExecution.JobWrapper.RunJob() t \\ Common \\ Compute \\ src \\ HDIComputeDelegatorJob \\ JobWrapper.cs:f:_Bld \\ 12752 \\ 4106 \\ Sources \\ Product \\ Common \\ Compute中的Microsoft.DataPipeline.Compute.HDInsightJobExecution.Launcher.Main(String [] args)中的第94行\\ src \\ HDIComputeDelegatorJob \\ Launcher.cs:第78行。
我自己遇到了同样的问题。 原来,Azure Data Factory仅限于Microsoft.WindowsAzure.Storage的4.3版本。 要加载不同的版本,您应该查看Microsoft的CrossAppDomainDotNetActivitySample 。
从自述文件:
此示例允许您为ADF创建自定义.NET活动,该活动不受ADF启动程序使用的程序集版本的限制(例如,WindowsAzure.Storage v4.3.0,Newtonsoft.Json v6.0.x等)。
该代码包括一个实现app-domain隔离的抽象基类(CrossAppDomainDotNetActivity)和一个使用WindowsAzure.Storage v6.2.0演示的示例派生类(MyDotNetActivity)。
注意:ADF SDK公开的公共类型不能跨应用程序域边界进行序列化。 因此,派生类必须提供预执行逻辑(PreExecute)以将ADF对象处理为可序列化对象,然后将其传递给核心逻辑(ExecuteCore)。
在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>
如果之后遇到其他类似问题,还要为这些程序集添加程序集绑定重定向。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.