C# 反射:无法加载 System.Net.Http

问题描述 投票:0回答:1

在我的项目(运行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.

如何正确加载此类型?

c# reflection assembly.reflectiononly
1个回答
0
投票

要解决此问题,您需要确保程序集及其依赖项在应用程序的探测路径中可用。

以下是一些可能的解决方案:

  1. 将程序集添加到应用程序的探测路径中:您可以添加 通过使用程序集到应用程序的探测路径 Assembly.LoadFile 方法。例如:

    Assembly.LoadFile(“path_to_System.Net.Http.dll”);

  2. 使用绑定重定向:如果程序集已存在于 探测路径但使用不同的版本,您可以使用绑定 重定向将应用程序重定向到所需的版本。你可以 通过将一个元素添加到应用程序的 配置文件(app.config):

  3. 使用私有程序集:如果该程序集在 探测路径,您可以将其作为私有程序集加载。为此,您 需要使用带有 LoadFrom 参数的 Assembly.Load 方法。 例如:

    Assembly.LoadFrom(“path_to_System.Net.Http.dll”);

将程序集及其依赖项添加到应用程序的探测路径后,您应该能够使用 Assembly.ReflectionOnlyLoad 加载它。

© www.soinside.com 2019 - 2024. All rights reserved.