在我的项目(运行un .NET 4.5)中,我在
ReflectionOnly
上下文中加载一个程序集,它的依赖项之一是System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
。
当我尝试加载它时:
Assembly.ReflectionOnlyLoad("System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
我遇到了这个异常:
Could not load file or assembly 'System.Net.Http, Version=4.2.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
如何正确加载此类型?
要解决此问题,您需要确保程序集及其依赖项在应用程序的探测路径中可用。
以下是一些可能的解决方案:
将程序集添加到应用程序的探测路径中:您可以添加 通过使用程序集到应用程序的探测路径 Assembly.LoadFile 方法。例如:
Assembly.LoadFile(“path_to_System.Net.Http.dll”);
使用绑定重定向:如果程序集已存在于
探测路径但使用不同的版本,您可以使用绑定
重定向将应用程序重定向到所需的版本。你可以
通过将一个元素添加到应用程序的
配置文件(app.config):
使用私有程序集:如果该程序集在 探测路径,您可以将其作为私有程序集加载。为此,您 需要使用带有 LoadFrom 参数的 Assembly.Load 方法。 例如:
Assembly.LoadFrom(“path_to_System.Net.Http.dll”);
将程序集及其依赖项添加到应用程序的探测路径后,您应该能够使用 Assembly.ReflectionOnlyLoad 加载它。