gpt4 book ai didi

nuget update 为 system.runtime 设置 bindingRedirects,然后在运行时失败

转载 作者:行者123 更新时间:2023-12-04 15:52:11 26 4
gpt4 key购买 nike

我有一个中等复杂的应用程序,有一个针对 .NET Framework 4.6.1 的单元测试项目

如果我在包管理控制台中运行以下命令:
update-package -reinstall -project velogicfit.Sizer3D.Core.UnitTests
...然后Nuget向单元测试项目的app.config文件添加了一堆绑定(bind)重定向,重定向到诸如System.Runtime之类的v4.1.1.0:

<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
</dependentAssembly>

然后,当项目(由 NCrunch 运行)时,它会失败并显示以下消息:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

我可以通过安装更新​​的框架版本来修复错误,但我宁愿了解导致 Nuget 添加这些绑定(bind)重定向的原因。

查看单元测试项目输出目录中的每个 DLL,我能看到的最高引用是 system.runtime v4.0.20.0

我试过 asmspy,它还报告说 4.0.20.0 有一些依赖项,但 4.1.1.0 没有

FWIW,对 system.runtime v4.0.20.0 的引用都来自我在解决方案中的其他项目,这些项目针对 NETStandard 1.4

问题:
  • 如何找出哪个框架版本对应于这些版本的 system.runtime(4.0.0.0、4.0.20.0、4.1.1.0)?
  • 是否有任何日志记录我可以打开以了解 Nuget 在想什么以及为什么它将程序集绑定(bind)重定向设置为 4.1.1.0?
  • 我的 NETStandard 1.4 项目是否应该引用 4.0.20.0?
  • 最佳答案

    我最终通过切换到 Paket 解决了这个(以及其他一些引用问题)。 Paket 帮助我掌握了我的直接和传递依赖关系,然后我能够看到什么取决于什么并适本地设置绑定(bind)重定向。

    关于nuget update 为 system.runtime 设置 bindingRedirects,然后在运行时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44511572/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com