zoukankan      html  css  js  c++  java
  • C#在使用Assembly加载程序集时失败

    错误现象:

    进行插件读取时出现错误:“尝试从一个网络位置加载程序集,在早期版本的 .NET Framework 中,这会导致对该程序集进行沙盒处理。此发行版的 .NET Framework 默认情况下不启用 CAS 策略,因此,此加载可能会很危险。如果此加载不是要对程序集进行沙盒处理,请启用 loadFromRemoteSources 开关。有关详细信息,请参见 http://go.microsoft.com/fwlink/?LinkId=155569。”

     

    错误原因:由于在项目中引用了外部dll,DotNET的安全机制阻止加载一个本地网或互联网上的assembly。

    方法1,参考https://msdn.microsoft.com/en-us/library/dd409252(VS.100).aspx进行解决,配置app.config就可以完<configuration>

       <runtime>

          <loadFromRemoteSources enabled="true"/>
       </runtime>
    </configuration>

    方法2,Assembly类有一个静态函数UnsafeLoadFrom,这个函数在加载一个assembly的时候,不会进行一些安全检查。加载dll语句修改为:

        string dll = @"Z: est.dll";  

        Assembly a = Assembly.UnsafeLoadFrom(dll);  

    方法3, Assembly的load方法有很多的重载,可以使用其中的一个参数为byte[]的load函数。代码如下:

        string dll = @"Z: est.dll"; ;  

        byte[] assemblyBuffer = File.ReadAllBytes(dll);  

        Assembly a = Assembly.Load(assemblyBuffer);  



    【原文http://blog.csdn.net/studying/article/details/6663627】
  • 相关阅读:
    压缩与解压
    Ubuntu下搭建yocto
    Ubuntu 1804 进入紧急模式
    How To Configure NFS Client on CentOS 8 / RHEL 8
    Install and Configure NFS Server on RHEL 8 / CentOS 8
    结构体大小的计算
    SQL语句对数据库调优常用
    用SQL语句操作数据库高级
    windows命令行操作mysql
    创建方便的csv格式文件
  • 原文地址:https://www.cnblogs.com/lfxiao/p/6771611.html
Copyright © 2011-2022 走看看