编译错误CS1705-引用程序集X使用的版本比引用程序集“ ...”的版本更高。

时间:2018-07-12 18:28:20

标签: c# visual-studio version assembly-binding-redirect

特定错误:

  

标识为“ X”的程序集“ X”,版本= 1.0.0.0,文化为中性,   PublicKeyToken = null'使用'System.Runtime.Extensions,Version = 4.2.0.0,   文化=中性,PublicKeyToken = b03f5f7f11d50a3a'   版本比引用的程序集“ System.Runtime.Extensions”具有   身份'System.Runtime.Extensions,Version = 4.1.2.0,Culture = neutral,   PublicKeyToken = b03f5f7f11d50a3a'

在从属程序集中调用引用程序集的方法时引发错误。

用于反序列化内存流并返回结果的方法(在引用的程序集中)

public static object Deserialize(MemoryStream stream)
    {
        IFormatter formatter = new BinaryFormatter();
        stream.Seek(0, SeekOrigin.Begin);
        return formatter.Deserialize(stream);
    }

调用(在从属程序集中)将引发以上错误(CS1705)

要尝试解决该问题,我将App.Config文件添加到引用的程序集中,该程序集是类库[.net框架],并将其添加到配置中:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Runtime.Extensions"
                      publicKeyToken="b03f5f7f11d50a3a"
                      culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.5.5.5"
                     newVersion="4.2.0.0"/>
  </dependentAssembly>
</assemblyBinding>
</runtime>

无论选择哪个newVersion,错误消息均保持不变。 我无法全神贯注于发生的事情。

1 个答案:

答案 0 :(得分:1)

答案是我只是个白痴。 我错误地选择了[.netFramework]而不是[.netCore],只是没有意识到。