【问题标题】:assembly does not match manifest程序集与清单不匹配
【发布时间】:2016-11-15 21:51:34
【问题描述】:

我有一个使用 Reactiveui (v 7.0) 和简单注入器的项目。 Reactiveui 使用 System.Reactive.Linq v2.2.5.0。在我的项目(使用 .net 4.5.1)中,我引用了 System.Reacive v3.0.0。我在 App.config 中添加了以下内容来处理重定向:

<dependentAssembly>
    <assemblyIdentity name="System.Reactive.Linq" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>

但是当我运行它时,我得到以下错误:

无法加载文件或程序集“System.Reactive.Linq, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。

我也尝试过 System.Reactive v3.1,但它给出了同样的错误。我该如何解决这个问题?

【问题讨论】:

    标签: c# manifest system.reactive


    【解决方案1】:

    你确定 dll 是用那个密钥签名的吗?您可以在 Visual Studio 命令提示符下使用 sn.exe 工具进行检查。

    【讨论】:

    • 是的,这是 v2.2.5.0 的密钥。如果我更改密钥,它会(正确地)抱怨 v2.2.5.0 与清单不匹配。我也尝试从 bin\debug 文件夹中删除所有文件,但仍然出现错误。
    • 你是对的,这是一个关键错误。我在另一个线程中注意到公钥必须匹配,否则无法重定向。所以我通过删除重定向并直接引用 rx-main nuget pkg 而不是 system.reactive.core 来消除错误。
    • 非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2017-12-08
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    相关资源
    最近更新 更多