当加载DLL及其引用时,我将面临一个问题。设想的情况是:
我有一个C#库项目(让我们称之为"A"),它引用了另一个C#库项目(让我们称之为"B")。这些项目的Dlls都存储在Azure Blob存储中,但这在现实中并不重要。
作为我项目的一部分,我正在使用XslCompiledTransform.Transform。在使用Assembly.Load加载dll A之后,我再次使用Assembly.Load加载dll B。
问题是,在执行Transform方法之后,我一直收到一个错误,即dll B无法找到,即使它在我调用AppDomain.CurrentDomain.GetAssemblies();时存在。
请注意,如果我从A中删除了B的依赖项,那么我们就可以确保仅使用dll A的Transform工作。
FileNotFoundException:无法加载文件或程序集'xxx、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null‘或其依赖项之一。系统找不到指定的文件。
还有一件事,如果我将dll B添加到projects Bin文件夹中,那么它可以工作,但当然,我不能这样做,我这样做只是为了证明它有效。
发布于 2020-01-09 12:08:23
正如@Luaan所解释的,我必须使用AppDomain.AssemblyResolve并返回正在加载的程序集。

https://stackoverflow.com/questions/59646614
复制相似问题