如何解决加载的 dll 中的 CreateDomain / AssemblyResolve 与拥有进程不在同一路径中
我在 2 个不同的目录中有一个 exe 和 dll
- Exe -
\\Drive\PathA\
- DLL -
\\Drive\PathB\
exe 动态加载 dll 并调用导出的函数。 导出的函数然后尝试创建域
var setup = new AppDomainSetup
{
ApplicationName = "NameOfDll",PrivateBinPathProbe = @"\\Drive\PathB\",ApplicationBase = @"\\Drive\PathB\"
};
var domain = AppDomain.CreateDomain(
"Name",AppDomain.CurrentDomain.Evidence,setup
);
domain.AssemblyResolve += OnAssemblyResolve; // <<< -- throws FileNotFoundException
“FileNotFoundException”是针对 dll 本身的!!
如果我将 dll 移动到 \\Drive\PathA\
,(exe 的路径),那么它工作正常。
我也试过 AppDomain.CurrentDomain.AssemblyResolve += OnAssemblyResolve;
但这也不起作用,(OnAssemblyResolve
从未被调用)。
遗憾的是,我无法移动 dll 或 exe。但我可以控制 exe 和 dll 的代码。
那么,我该如何解析这个 dll 的路径,以便我可以创建一个域??
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。