【问题标题】:Appdomain.Load(AssemblyName) raises file not found exceptionAppdomain.Load(AssemblyName) 引发文件未找到异常
【发布时间】:2015-04-08 19:35:17
【问题描述】:

这个 sn-p 工作正常:

System.Security.PermissionSet PS = new System.Security.PermissionSet(PermissionState.None);
PS.AddPermission(new FileIOPermission(FileIOPermissionAccess.AllAccess, Path));
PS.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));
AppDomainSetup ADS = AppDomain.CurrentDomain.SetupInformation;
AppDomain domain = AppDomain.CreateDomain("Pluging", null, ADS, PS, null);
Assembly asm = Assembly.LoadFile(DLLPath); 
domain.Load(asm.FullName);

创建新的 AppDomainSetup 失败:

System.Security.PermissionSet PS = new System.Security.PermissionSet(PermissionState.None);
PS.AddPermission(new FileIOPermission(FileIOPermissionAccess.AllAccess, Path));
PS.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));
AppDomainSetup ADS = new AppDomainSetup();
ADS.ApplicationBase= Path;
AppDomain domain = AppDomain.CreateDomain("Pluging", null, ADS, PS, null);
Assembly asm = Assembly.LoadFile(DLLPath); 
domain.Load(asm.FullName);

整个事情在一个用 VS2012 开发的 asp.net 项目中运行。

这是我收到的异常:

Could not load file or assembly 'MacroBase, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system 
cannot find the file specified.

你能帮忙吗?

【问题讨论】:

    标签: c# sandbox appdomain


    【解决方案1】:

    问题是我曾经在存储 dll 之前重命名它们。我仍然不知道解决方法,但我更改了算法,以便可以存储和调用与最初编译时同名的 dll。问题解决了。

    更改 AppDomainSetup 的效果如何?在第一个替代方案中,asp.net 在 asp.net 项目的 bin 目录中找到了重命名的 dll(具有原始名称)的副本。

    【讨论】:

      猜你喜欢
      • 2016-02-25
      • 1970-01-01
      • 1970-01-01
      • 2021-07-20
      • 1970-01-01
      • 2019-03-29
      • 2019-06-26
      • 2012-01-06
      • 1970-01-01
      相关资源
      最近更新 更多