C# 为什么我找不到那个集合?

C# 为什么我找不到那个集合?,c#,C#,我确保所有路径都是正确的,但它仍然抛出“FileNotFound”异常…为什么? 你认为有多少原因会导致这个问题?(我已确保“A.dll”存在) 其他资料: 我的光盘被压缩了 PS2:A.dll不是强名称dll PS3:路径是我的Performce的映射路径。问题在于AppDomain.Load程序集被加载到两个域中 如果当前AppDomain对象表示应用程序域A,并且从应用程序域B调用加载方法,则程序集将加载到两个应用程序域中 当前域需要了解这些程序集并加载它们 如果使用,您将看到新创建的域从

我确保所有路径都是正确的,但它仍然抛出“FileNotFound”异常…为什么? 你认为有多少原因会导致这个问题?(我已确保“A.dll”存在)

其他资料:

我的光盘被压缩了

PS2:A.dll不是强名称dll


PS3:路径是我的Performce的映射路径。

问题在于
AppDomain.Load
程序集被加载到两个域中

如果当前
AppDomain
对象表示应用程序域A,并且从应用程序域B调用加载方法,则程序集将加载到两个应用程序域中

当前域需要了解这些程序集并加载它们

如果使用,您将看到新创建的域从专用bin路径加载程序集,但当前应用程序域不加载程序集

这就是为什么会出现“未找到文件”的异常

此方法应仅用于将程序集加载到当前 应用程序域。提供此方法是为了方便用户 无法调用静态程序集的互操作性调用方。加载 方法。要将程序集加载到其他应用程序域,请使用 方法,例如CreateInstanceAndUnwrap


如果您想从不同的位置加载某个程序集,您应该按照我在回答中所说的那样执行:
E
驱动器是本地磁盘吗?因为,例如,网络驱动器映射(大部分)是一个按用户的概念,所以下一个问题是,此代码是在您的帐户下运行还是在另一个帐户下运行?您到底想做什么?对于您正在尝试的wat,实际上可能还有另一种方法。您需要检查执行代码的计算机上是否存在“E:\Projects\IPP\main\prinergyweb”。
AppDomainSetup domainSetup = new AppDomainSetup();
// Assign a global path that includes "prinergyweb\bin"
domainSetup.ApplicationBase = @"E:\Projects\IPP\main\prinergyweb";
domainSetup.PrivateBinPath = @"bin";
AppDomain newDomain = AppDomain.CreateDomain("Test", null, domainSetup);
newDomain.Load("A");