如何在内存中运行DLL
有个DLL,我现在可以把它从服务器下载到本地,如何,把DLL不存在本地(或加载后删除DLL文件)
直接在内存中运行?
我已经能下载这个DLL了,问题是如何不存本地在内存中运行呢?请高手指点

解决方案 »

  1.   

    赋值到文件夹,DLLImport 用于托管程序调非托管程序动态类库. 符合DLL规范的
      

  2.   

    下载保存到内存中,然后使用反射载入到Assembly实例中public static Assembly Load(byte[] rawAssembly)
      

  3.   

    这种思路可行。
    不过如果不是特别场合貌似没有这种必要,每次下载dll一旦网络故障就不能使用了。
      

  4.   


    byte[] content = File.ReadAllBytes("dll的临时路径");
    Assembly dll = Assembly.Load(content);
    File.Delete("dll的临时路径");这种方法有个缺点,.NET不会自动解析DLL的reference关系,如果有更深一层的dependency关系,需要手动解析。