1

我试图了解,当我通过 nuget 添加 moq 时,它创建了一个包含以下信息的 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>

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

无法加载文件或程序集“Moq,版本=4.1.1309.801,Culture=neutral,PublicKeyToken=69f491c39445e920”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

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

        4.1.1309.919

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

我也不知道为什么当我的起订量参考显然是时我的 app.config 没有被 nuget 更新。

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

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

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

4

1 回答 1

2

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

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

于 2013-09-12T16:57:36.793 回答