【问题标题】:Type ambiguity between assembly versions程序集版本之间的类型歧义
【发布时间】:2017-06-09 06:07:27
【问题描述】:

我有以下代码行会产生错误:

public class AccountController : ApiController

错误是:

CS0433 类型 'ApiController' 存在于两个 'System.Web.Http, 版本=4.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35' 和'System.Web.Http,版本=5.2.3.0,文化=中性, PublicKeyToken=31bf3856ad364e35'

我有一个非常新手的程序集重定向尝试,但它们到底有多难?

<runtime>
  <assemblyBinding  xmlns="urn:schemas-microsoft-com:asm.v1">
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
  </assemblyBinding>
</runtime>

重定向似乎完全没有效果。

我目前的选择是删除其中一个版本,我更愿意转储旧的 4.0.0.0,但所需库之间的冲突似乎让这变得困难。

【问题讨论】:

    标签: c# .net version assembly-binding-redirect


    【解决方案1】:

    您的 oldVersion 上限等于 newVersion。试试 0.0.0.0-5.2.2.999,可能会有帮助。

    【讨论】:

    • 这两个版本相同在几乎所有 MS 的重定向中都极为常见。
    • 这意味着,即使我要求最新版本,您也将我重定向到最新版本。
    • 嗯,您的配置文件中的&lt;dependentAssembly&gt; XML 元素丢失,请参阅here
    • 看到这个太晚了。
    猜你喜欢
    • 2012-11-02
    • 1970-01-01
    • 2014-10-22
    • 2012-02-10
    • 1970-01-01
    • 2017-10-27
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多