【问题标题】:Error:Upgrade MVC4 to MVC5 in VS2012错误:在VS2012中升级MVC4到MVC5
【发布时间】:2013-10-30 11:11:53
【问题描述】:

将我的项目从 MVC4 升级到 MVC5 后,我遇到了以下错误。我关注了How to Upgrade an ASP.NET MVC 4 and Web API Project to ASP.NET MVC 5 and Web API 2

Assembly 'WebServices.WebApi.External, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 如何解决这个问题?

【问题讨论】:

  • 升级所有 NuGet 包。
  • 我做了,哪个 Nuget 包有 System.Web.Http
  • 我不确定。在您的项目中选择该引用并查看其完整路径。
  • Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45\System.Web.Http.dll
  • 嗯;那应该是v5。尝试清洗溶液。

标签: asp.net-mvc-4 asp.net-mvc-5


【解决方案1】:

就我而言,我刚刚从 Web.config 文件中删除了麻烦的绑定,从而解决了问题。

备份您的web.config,然后简单地删除包含名称为System.Web.HttpassemblyIdentity 元素的dependentAssembly 元素。

<dependentAssembly>
  <assemblyIdentity name="System.Net.Http" publicKeyToken="31bf3856ad364e35" />
  <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>

它立即对我有用。

【讨论】:

    【解决方案2】:

    我也开始关注那篇文章,但没有完全成功,但是

    要修复这个“简单”,创建新的 web mvc 项目并保存它 然后在记事本中打开 web.config、web.config from views、packages.config 和 .csproj

    然后打开您的项目并查看文件版本号的条目差异 例如在你应该看到的包中

    <package id="Microsoft.AspNet.Mvc" version="5.0.0" targetFramework="net45" />
    

    但你可以拥有

    <package id="Microsoft.AspNet.Mvc" version="4.x.x.x" targetFramework="net40" />
    

    在 web.config 中

    <dependentAssembly>
            <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
          </dependentAssembly>
    

    但你可以拥有

    <dependentAssembly>
            <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
          </dependentAssembly>
    

    在 .csproj 中

    <Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
          <Private>True</Private>
          <HintPath>..\packages\Microsoft.AspNet.WebPages.3.0.0\lib\net45\System.Web.Helpers.dll</HintPath>
        </Reference>
    

    但你可以拥有

    <Reference Include="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
          <Private>True</Private>
          <HintPath>..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.Helpers.dll</HintPath>
        </Reference>
    

    全部替换为新值

    然后按Ctrl+Shift+B 并在 nuget 控制台中通过命令 Update-Package 更新所有包

    对我来说终于完成了这项工作

    【讨论】:

    • 伙计,你拯救了我的一天! :)
    【解决方案3】:

    您应该检查 WebServices.WebApi.External 项目的所有引用。其中之一可能仍然使用 System.Web.Http 版本 4。或者,尝试在 web.config 中显式绑定它

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

    【讨论】:

    • 升级 MVC 项目后,我开始收到上述错误。在实际阅读错误后,我发现是我的单元测试项目中对 Web 项目的引用导致了问题。使用匹配版本升级测试项目后,一切正常。
    【解决方案4】:

    我通过安装 System.Web.Http.WebHost 解决了这个问题。您可以使用 nuget 安装并搜索 WebHost。这是确切的链接https://www.nuget.org/packages/Microsoft.AspNet.WebApi.WebHost/5.1.0

    您也可以从包管理器控制台安装它: PM> 安装包 Microsoft.AspNet.WebApi.WebHost

    【讨论】:

      【解决方案5】:

      遇到了同样的问题。通过使用 Nuget 卸载旧的 AttributeRouting 包解决。当然,它不再需要了。

      这也是在一个单元测试项目中。

      【讨论】:

        【解决方案6】:

        我遇到了类似的问题,这是由于我使用了

        _bin_deployableAssemblies

        此文件夹在版本 4 中包含 System.Web.Http。我删除了此文件夹并且它可以工作

        【讨论】:

          猜你喜欢
          • 2013-07-01
          • 1970-01-01
          • 2013-09-17
          • 2013-12-06
          • 2015-10-18
          • 1970-01-01
          • 1970-01-01
          • 2018-06-02
          • 1970-01-01
          相关资源
          最近更新 更多