.NET:dependentAssembly,bindingRedirect的版本错误

本文关键字:版本 错误 bindingRedirect dependentAssembly NET | 更新日期: 2023-09-27 18:31:14

我试图理解当我通过 nuget 添加最小起订量时,它创建了一个包含以下信息的 app.config。

  <dependentAssembly>
    <assemblyIdentity name="Moq" publicKeyToken="69f491c39445e920" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.1.1309.801" newVersion="4.1.1309.801" />
  </dependentAssembly>

问题是现在我收到这样的错误

无法加载文件或程序集"最小起订量,版本=4.1.1309.801, 区域性=中性,公钥令牌=69f491c39445e920'或其之一 依赖。找到的程序集的清单定义没有 匹配程序集引用。(HRESULT的例外:0x80131040)

这样做的原因基本上是我的最小起订量参考实际上有这个版本

        4.1.1309.919

所以我很困惑,有没有办法解决这个问题?当然,一种快速而肮脏的方法是手动编辑 app.config 文件并放置正确的版本,即 .919,但我有很多。

我也不知道为什么我的 app.config 没有被 nuget 更新,而我的最小起订量引用显然是。

我不认为属性 newVersion ??? 中支持通配符之类的东西

我知道如果我删除该文件,它会导致我出现其他问题,因为我依赖于 moq 3.0,因此拥有此文件意味着它仍然支持依赖引用并将其重定向到 4.1。

这是我的理解,但我不是 100% 确定,有人帮忙吗?

.NET:dependentAssembly,bindingRedirect的版本错误

我认为

您对问题原因的假设可能是错误的。 绑定重定向不应影响引用 4.1.1309.919 的项目。 这很可能来自引用 3.0 的项目。 似乎您实际上安装了 4.1.1309.919,您引用的内容介于 0.0.0.0-4.1.1309.801 之间,并且由于绑定重定向不正确,它失败了。

您能否确定哪个测试项目因异常而失败并发布 proj 文件的引用部分?