加载dll过程中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:\test.dll";

    Assembly a = Assembly.UnsafeLoadFrom(dll);

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

    string dll = @"Z:\test.dll"; ;

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

    Assembly a = Assembly.Load(assemblyBuffer);


【原文http://blog.csdn.net/studying/article/details/6663627】
时间: 2024-08-25 08:48:21

加载dll过程中assembly失败的相关文章

加载的过程中图片变形了? --教你自定义自动适配图片宽高比的RatioLayout

很多同行在开发中可能会遇到这样的问题,就是在加载图片的时候会出现图片变形的问题.其实这很可能就是你的图片宽高比和图片所在容器的宽高比不匹配造成的.比如说图片的宽为200,高为100.宽高比就是2,那么这时候把它放在宽高比为1或者3的控件上就会分别出现变窄和变宽的问题.只有在容器宽高比为2的时候图片才会和原始显示效果一样.怎样解决这个问题呢?这个时候就可以创建一个能够自适应图片宽高比的父容器来包裹ImageView就可以了.在使用RatioLayout的时候要注意以下几点: 1)ImageView

Webkit初始化以及加载URL过程中各种对象的建立时序以及DOM树的建立详情分析

众所周知,Webkit需要创建DOM树.为此它需要创建WebView, Chrome,Page,Frame, Document, Document Parser, DOM Tree Builder(DOM树的建造引擎),ScriptRunner, Resource Handle等等对象. 同时,还需要创建为上面这些对象服务或者与之通信的支持对象,比如:与本地窗口相关的ChromeClient, 与FrameLoader事件相关的FrameLoaderClient,为Document服务的Docu

log4j的学习和log4j在程序中使用的加载作用过程

昨天进行代码评审的时候,大家都纠结在了日志信息应该如何输出上,其实我想大家应该一直都在使用log4j来对日志信息进行输出,但是未想应该有很大一部分人对log4j是不了解的,我遇到这个问题的时候也到网上找了一些参考资料,这些参考资料更多的是去介绍以下是怎么使用的.我们知道在使用log4j的时候我们需要将log4j对应的jar包放在lib下  然后将log4j.properties配置文件放在src下,也就是类的根目录下.我看很多的文章都是介绍在log4j.properties的配置文件中是如何配置

unity3d动态加载dll的API以及限制

Unity3D的坑系列:动态加载dll 一.使用限制 现在参与的项目是做MMO手游,目标平台是Android和iOS,iOS平台不能动态加载dll(什么原因找乔布斯去),可以直接忽略,而在Android平台是可以动态加载dll的,有了这个就可以实现代码更新,不过实际上,在unity里要用上动态加载dll是有很多限制的(不了解的话就是坑). 限制1:在Android手机里动态加载dll不能使用Assembly.LoadFile(string path),只能使用Assembly.Load(byte

Delphi静态加载DLL和动态加载DLL示例

下面以Delphi调用触摸屏动态库xtkutility.dll为例子,说明如何静态加载DLL和动态加载DLL. 直接上代码. 1.静态加载示例 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) btnEnableTouch: TButton; btnDi

Unity3D的坑系列:动态加载dll

Unity3D的坑系列:动态加载dll 我现在参与的项目是做MMO手游,目标平台是Android和iOS,iOS平台不能动态加载dll(什么原因找乔布斯去),可以直接忽略,而在Android平台是可以动态加载dll的,有了这个就可以实现代码更新,不过实际上,在unity里要用上动态加载dll是有很多限制的(不了解的话就是坑). 限制1:在Android手机里动态加载dll不能使用Assembly.LoadFile(string path),只能使用Assembly.Load(byte[] raw

无法加载 DLL“rasapi32.dll”: 动态链接库(DLL)初始化例程失败。的处理备注方案

网站提示   无法加载 DLL"rasapi32.dll": 动态链接库(DLL)初始化例程失败. (异常来自 HRESULT:0x8007045A). <system.net><defaultProxy><proxy usesystemdefault="false" /></defaultProxy></system.net> 初步怀疑是因为做了云加速服务造成的代理问题,自己瞎猜!反正应该管用

从内存中加载DLL DELPHI版

//从内存中加载DLL DELPHI版 unit MemLibrary; interface uses Windows; function memLoadLibrary(pLib: Pointer): DWord; function memGetProcAddress(dwLibHandle: DWord; pFunctionName: PChar): Pointer; stdcall; function memFreeLibrary(dwHandle: DWord): Boolean; imp

从内存中加载DLL Delphi版(转)

源:从内存中加载DLL DELPHI版 原文 : http://www.2ccc.com/article.asp?articleid=5784 MemLibrary.pas //从内存中加载DLL DELPHI版 unit MemLibrary; interface uses Windows; function memLoadLibrary(pLib: Pointer): DWord; function memGetProcAddress(dwLibHandle: DWord; pFunctio