当前位置: 首页 > 知识库问答 >
问题:

库版本冲突。NET: System.网。http

江飞白
2023-03-14

我正在尝试使用NuGet Package Manager控制台将更改部署到数据库。当我发出更新数据库命令时,该命令失败,并显示一条错误消息:

Could not load file or assembly 'System.Net.Http, Version=4.1.1.1,
  Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its
  dependencies. The system cannot find the file specified.

我的项目目标。NET 4.5.2,据我所知,它提供了System.网。http在版本4.0.0.0。因此,关联库不会放在二进制输出目录中。当我下载4.1.1.1版本(Nuget包版本4.3.2)并将其复制到二进制输出目录,以及我的DLL时,我会收到另一条错误消息:

Loading this assembly would produce a different grant set from other
  instances. (Exception from HRESULT: 0x80131401)

在这两种情况下,例外情况都是系统。木卫一。FileLoadException并将其抛出到Microsoft中。RestServiceClient'1。CreateRootHandler()。我检查了该函数的源代码,它实际上引用了。NET 4.5和系统。网Http

  protected static HttpClientHandler CreateRootHandler()
  {
    // Create our root handler
#if NET45
    return new WebRequestHandler();
#else
    return new HttpClientHandler();
#endif
  }

然而,我在任何地方都找不到系统的确切版本号。网Http。最后,我使用ILSpy检查了Microsoft。Rest客户端运行时,它似乎依赖于系统。网Http在版本4.0.0.0中。

我还尝试删除对系统的所有引用。网Http并安装最新的NuGet(4.3.2)。这会导致后续错误,并导致缺少方法:

Method not found: 'Void Microsoft.Azure.KeyVault.KeyVaultClient..ctor(
  AuthenticationCallback, System.Net.Http.DelegatingHandler[])'.

Method not found: 'Void Microsoft.Rest.ServiceClient`1..ctor(
  System.Net.Http.DelegatingHandler[])'.

我通过将正确的DLL从相应的Nuget复制到部署目录来解决这个问题。这最终导致了:

Loading this assembly would produce a different grant set from other
  instances. (Exception from HRESULT: 0x80131401)

我错过了什么?

共有1个答案

丁阳炎
2023-03-14

在这里找到库纳尔的答案后:

MongoDB客户端在mscorlib中引发FileNotFoundException

为我工作,我尝试更改系统的版本号。网Http。我有这个系统。网针对net462安装了Http版本4.3.3,这对我很有用:

<dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0"/>
</dependentAssembly>
 类似资料:
  • 我正在开发一个应用程序和一个库(Android模块)。它们在不交互时没有问题:在导入库后,Android Studio搞乱了设置,我无法恢复。 和其他98个类似的:都与主题问题有关。 还有其他消息引用值、,例如:

  • 从最近几天开始,protoc生成器正在使用github.com/grpc-ecosystem/grpc-gateway的v2版本生成代码。我想继续使用github。com/grpc生态系统/grpc网关v1.16.0。我无法删除导致冲突的v2版本。我试着离开围棋。mod,从$GOPATH清除。我想我的protoc生成器不能使用v1版本。请指导我如何同步grpc网关运行时包。 使用以下命令生成消息和

  • 问题内容: 在构建具有许多依赖项的Maven项目时,其中一些依赖项依赖于同一库,但使用的版本不同,这会在运行应用程序时导致错误。 例如,如果我添加两个不同的项目依赖项,A和B都依赖于apachecommonshttp客户端,但每个依赖于不同版本,则一旦类加载器加载了A的apachecommons http客户端类,B就会尝试使用它们,因为它们已经由类加载器加载。 但是B的字节码取决于所加载类的不同

  • 问题内容: 作为测试项目,我使用wsdl和jax- ws创建了一个非常简单的WebService。如果客户端作为GlassFish中的Web应用程序部署,则客户端运行得很好,但是如果我直接在Eclipse中启动相同的(WebService-)代码,则会收到以下错误: 经过研究,我发现它与某些版本的库文件有一定关系。所以现在我的问题是,如何才能“修复” Eclipse Java执行以正确运行我的We

  • 我正在使用Maven和Jetty作为服务器开发RestEasy Web服务。其中一个服务应该使用扩展javax.servlet.http.HttpServletReportseWrapper的Filter。问题在于来自servlet-api 2.3的接口javax.servlet.ServletReages的方法集特征编码。我得到了以下异常 我已经规范了servlet-api 2.4依赖项,但也尝

  • 你好,我有一个Spring Boot应用程序,正在使用 这取决于泽西版本2.7。 当试图使用 在内部使用泽西版本1.1时,应用程序会失败,因为同一个库有两个不同的版本。 任何关于如何解决这个问题的建议,我都试图只使用2.7版,但它们似乎彼此不兼容 谢谢 java.lang.NoSuchMultiodError:javax.ws.rs.core.pplication.get属性()Ljava/uti