首页 文章

在ASP.NET Web Api项目上安装Breeze框架后出现错误

提问于
浏览
1

我有ASP.NET Web Api 2.2项目 . 我在这个项目中通过nuget安装了breeze:

breeze-via-nuget

安装Breeze框架后我遇到错误,现在我无法构建项目:

  • 错误程序集'System.Web.Http.OData,Version = 5.2.2.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'使用'System.Web.Http,Version = 5.2.2.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'比引用的程序集'System.Web.Http,Version = 5.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'c:\ Users \ Home \ Documents \ Visual Studio 2013 \ Projects \ MyProject \ packages \ Microsoft.AspNet更高的版本 . WebApi.OData.5.2.2 \ LIB \ net45 \ System.Web.Http.OData.dll

  • 错误 - 程序集'System.Web.Http.OData,Version = 5.2.2.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'使用'System.Net.Http.Formatting,Version = 5.2.2.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35 '它具有比引用程序集更高的版本'System.Net.Http.Formatting,Version = 5.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'c:\ Users \ Home \ Documents \ Visual Studio 2013 \ Projects \ MyProject \ packages \ Microsoft.AspNet.WebApi.OData.5.2.2 \ LIB \ net45 \ System.Web.Http.OData.dll

虽然库是新版本 .

当我在“解决方案资源管理器”中打开我的项目的“参考”并双击“System.Web.Http”

references

它会打开“对象浏览器”选项卡 . 我有几个版本的“System.Web.Http” . H

few versions

我可以说要使用我需要的版本吗?我该如何解决这个问题?

3 回答

  • 2

    @KrishnaTejaVeeramachaneni - 除了消息中标识的程序集之外,你给了他所有内容的程序集重定向: System.Web.Http.OData

    将其添加到混合中:

    <dependentAssembly>
        <assemblyIdentity name="System.Web.Http.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.0.0" newVersion="5.2.0.0" />
      </dependentAssembly>
    

    我've got a ton of these redirects in my apps. Here'是DocCode的Web.config的整个部分:

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Http.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-5.2.0.0" newVersion="5.2.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
              <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
              <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" />
          </dependentAssembly>
          <dependentAssembly>
              <assemblyIdentity name="System.Web.Http.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
              <bindingRedirect oldVersion="0.0.0.0-5.2.0.0" newVersion="5.2.0.0" />
          </dependentAssembly>
          <dependentAssembly>
              <assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />
              <bindingRedirect oldVersion="0.0.0.0-5.6.2.0" newVersion="5.6.2.0" />
          </dependentAssembly>
          <dependentAssembly>
              <assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
              <bindingRedirect oldVersion="0.0.0.0-5.6.2.0" newVersion="5.6.2.0" />
          </dependentAssembly>
          <dependentAssembly>
              <assemblyIdentity name="System.Spatial" publicKeyToken="31bf3856ad364e35" culture="neutral" />
              <bindingRedirect oldVersion="0.0.0.0-5.6.2.0" newVersion="5.6.2.0" />
          </dependentAssembly>
        </assemblyBinding>
    </runtime>
    
  • 1

    解决这个问题非常简单 . 您需要从项目中删除对库的引用 . 然后检查它是否已在bin文件夹中删除 . 如果没有,请手动删除它 . 然后添加对所需版本库的新引用 .

    由于某些原因,当您引用同一库的另一个版本时,VS不会替换库 .

  • 0

    您必须将web.config中的以下设置更新为此类似的内容 . 好像在安装nuget软件包时,默认的web.config设置未正确更新 .

    <dependentAssembly>
        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
      </dependentAssembly>
    

相关问题