我的项目 A 引用了项目 B。项目 B 包含对第 3 方程序集的引用。项目 A 位于项目 B 和第 3 方程序集之外的另一个文件夹中(由于与另一个软件集成)。我知道我可以将程序集放在集成文件夹中,但我希望将它们放在我自己的文件夹中,在该文件夹中我拥有所有其他程序集以及用于诊断和设置模块的可执行文件。
我MyResolveEventHandler
在项目A中订阅了AppDomain.CurrentDomain
,并且可以成功设置项目B的正确组装路径。当项目A调用项目B中使用3rd方程序集的方法时会出现问题。然后它抛出FileNotFoundException
该程序集,并显示集成文件夹的路径,而不是我为项目 B 设置的文件夹MyResolveEventHandler
。
我试过AppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(@"pathOf3rdPartyAssembly"))
了,它会告诉我它成功地加载了程序集Appdomain
,但仍然会抛出FileNotFoundException
上面提到的相同。
如何从项目 A 设置项目 B 中使用的第 3 方程序集的程序集路径?
编辑: 对不起,问题是由我自己一个隐藏得很好的错误引起的。我实现了一些抛出 FileNotFoundException 的 dll 劫持对策。实际上,当为项目 B 设置正确的组装路径时,这对于项目 B 中引用的第 3 方应用程序也是有效的。抱歉浪费您的时间...我可以向您保证,在问这个问题之前我浪费了很多时间,当问问题,问问题后。现在我要继续前进了... :) 感谢您的所有建议!我会为你们两个点赞...