none
急:请高手指点加载内网程序集的问题 RRS feed

  • 问题

  • 程序中使用
    Assembly asmbly = Assembly.LoadFile(strFile);
    方法来动态调用程序集,并反射调用其中的方法执行。
    所有exe和dll都放在本地是没有问题的,问题是当exe和dll放在内网某台机器的共享目录上(如\

    \192.168.2.95\Release)后直接运行程序,代码执行到
    “Assembly asmbly = Assembly.LoadFile(@"\\192.168.2.95\Release\form.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.

    网上找到的解决办法是:
    (http://msdn.microsoft.com/en-us/library/dd409252%28VS.100%29.aspx)
    <configuration>
       <runtime>
          <loadFromRemoteSources enabled="true"/>
       </runtime>
    </configuration>
    可是我的是winform程序,没有这个配置文件啊!

    急盼有效解决方法!谢谢!
    chanfengsr@163.com
    2010年6月2日 3:17

答案

  • 你好 winform也有这个节点的 这个跟winform还是aspnet没关系

    你可以直接在winform的配置文件中app.config中添加 <runtime>
          <loadFromRemoteSources enabled="true"/>
       </runtime>

     

    如果没有配置文件在项目添加项 添加配置文件

    还有就是既然你要将程序集放置在其它计算机上 建议采用.NET Remoting 又更多更强的功能


    I see you~http://hi.baidu.com/1987raymondMy Blog~~~
    2010年6月2日 3:31
    版主

全部回复