C# 加载网络映射盘中的assembly失败
来源:互联网 发布:林志玲人品如何 知乎 编辑:程序博客网 时间:2024/04/30 00:46
我有一个网络映射盘,盘符是Z:。在Z盘下面,放了一个assembly,名为test.dll。然后,我在VS2010中建立了一个.NET 4.0的工程,程序中有下面一段代码:
- string dll = @"Z:\test.dll";
- Assembly a = Assembly.LoadFrom(dll);
深入到内部异常:An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.。
看来是.NET的安全机制阻止加载一个网络上(本地网或者互联网)的assembly。
【办法一】
根据提示,找到了MSDN的一篇文章。文章给出的解决办法是:在程序的配置文件中加入下面的xml片段:
- <configuration>
- ......
- <runtime>
- <!-- WARNING: will load assemblies from remote locations as fully trusted! -->
- <loadFromRemoteSources enabled="true" />
- </runtime>
- ......
- </configuration>
按照这个解决办法,程序运行正确。
MSDN链接:http://msdn.microsoft.com/en-us/library/dd409252(VS.100).aspx。
【办法二】
Assembly类有一个静态函数UnsafeLoadFrom,这个函数在加载一个assembly的时候,不会进行一些安全检查。将原先的代码修改如下即可:
- string dll = @"Z:\test.dll";
- Assembly a = Assembly.UnsafeLoadFrom(dll);
【办法三】
Assembly的load方法有很多的重载,可以使用其中的一个参数为byte[]的load函数。代码如下:
- string dll = @"Z:\test.dll"; ;
- byte[] assemblyBuffer = File.ReadAllBytes(dll);
- Assembly a = Assembly.Load(assemblyBuffer);
- C# 加载网络映射盘中的assembly失败
- 加载网络映射盘中的assembly失败
- 【解决问题】加载网络映射盘中的assembly失败
- Donet 加载网络映射盘中的assembly失败
- C#中的Assembly类
- C#中的Assembly
- C#中的反射 Assembly.Load() Assembly.LoadFrom()
- C#建立网络映射盘
- C#动态加载/卸载Assembly的解决方案
- C#动态加载/卸载Assembly的解决方案
- C#映射网络驱动器
- C#映射网络驱动器
- c# 映射远程网络
- C# Assembly
- C# Assembly
- C#中可以通过Assembly来动态加载DLL
- C#动态加载/卸载Assembly的解决方案2
- c#使用反射加载程序集Assembly。load()使用全过程
- Struts2.0中ActionInvocation使用
- OpenCL在Mac上开发注意的一些问题
- Python操作Sqlite3
- tomcat5.5+JDK1.6安装
- Framework/base 下添加自定义模块的步骤
- C# 加载网络映射盘中的assembly失败
- POJ 3481 Double Queue
- 使用 Ant 打包 Android 应用
- java反射机制详解 及 Method.invoke解释
- 字节流和字符流的区别
- ios5 xcode 4.2 中 release显示编译警告或错误的解决方法
- Linux下RPM方式安装net-snmp
- 复制百度文库,直接下载youku视频,跳过土豆广告
- VC 中的计时处理整理