C# 如何正确使用Assembly.LoadFile?

C# 如何正确使用Assembly.LoadFile?,c#,.net,assembly-loading,C#,.net,Assembly Loading,在应用程序执行期间,我需要能够从具有相同标识的不同位置加载程序集。 我使用的是Assembly.LoadFrom,但此方法仅加载使用的第一个版本,而不加载其余版本。在阅读了MSDN之后,我发现,对于这种情况,我需要使用“Assembly.LoadFile”。 我的问题是,在更改了方法之后,我得到了FileNotFoundException。这怎么可能?这与我以前使用的路径相同。当尝试使用程序集中定义的类型而不是LoadFile方法中定义的类型时,也会出现异常 如果研究返回的程序集变量,与内部类型

在应用程序执行期间,我需要能够从具有相同标识的不同位置加载程序集。 我使用的是Assembly.LoadFrom,但此方法仅加载使用的第一个版本,而不加载其余版本。在阅读了MSDN之后,我发现,对于这种情况,我需要使用“Assembly.LoadFile”。 我的问题是,在更改了方法之后,我得到了
FileNotFoundException
。这怎么可能?这与我以前使用的路径相同。当尝试使用程序集中定义的类型而不是LoadFile方法中定义的类型时,也会出现异常

如果研究返回的程序集变量,与内部类型相关的每个成员都会显示异常。例如
DefinedTypes
ExportedTypes
。通过研究这些异常,我发现对于每种类型,对应的异常都是
FileNotFoundException
,如:

无法加载文件或程序集的AssemblyName,版本=1.0.0.0, 区域性=中性,PublicKeyToken=null'或其依赖项之一。这个 系统找不到指定的文件


非常感谢您的帮助。

欢迎来到组装加载上下文的神奇世界!您必须使用
fuslogvw
查看发生了什么。祝您好运。“…并且不会像LoadFrom方法那样使用加载路径解析依赖项。”您可能需要设置
AppDomain.AssemblyResolve
事件处理程序,以查看在尝试访问这些类型时.NET缺少什么。请清理解决方案,然后重试。