Dynamic 从Azure Blob加载依赖DLL

Dynamic 从Azure Blob加载依赖DLL,dynamic,dll,azure,blob,loading,Dynamic,Dll,Azure,Blob,Loading,我在WindowsAzure上使用插件架构。为了避免重启,我想将插件DLL存储在blob中,而不是文件系统中。但是,我遇到了DLL之间的依赖关系问题。我有以下情况: DLL A依赖于DLL B 两者都存储在一个Azure Blob中 我首先加载DLL B,没有问题 然后我尝试加载DLL A-异常,因为它找不到包含DLL B的文件 这当然是非常合乎逻辑的,因为DLL B不在本地文件系统中。有没有办法让类加载器不尝试加载DLL B,而是在内存中查看已经加载的DLL B?或者我需要返回并修改设计。

我在WindowsAzure上使用插件架构。为了避免重启,我想将插件DLL存储在blob中,而不是文件系统中。但是,我遇到了DLL之间的依赖关系问题。我有以下情况:

  • DLL A依赖于DLL B
  • 两者都存储在一个Azure Blob中
  • 我首先加载DLL B,没有问题
  • 然后我尝试加载DLL A-异常,因为它找不到包含DLL B的文件

这当然是非常合乎逻辑的,因为DLL B不在本地文件系统中。有没有办法让类加载器不尝试加载DLL B,而是在内存中查看已经加载的DLL B?或者我需要返回并修改设计。

最简单的模式是在角色初始化期间使用On_Start函数(或启动脚本)将两个DLL复制到已知的本地位置。

您能解释一下如何加载插件吗?谁在实际加载您的DLL?你呢?框架?另外,这些DLL存储在哪里?本地文件夹?GAC?顺便说一句,您使用的是IaaS还是PaaS?似乎您没有使用托管可扩展性框架(MEF)或托管加载项框架(MAF或System.AddIn)-即使您使用了,您也可能需要在加载之前将blob下载到您角色的目录中。