在MVC5项目中安装BreezeJS的问题

在MVC5项目中安装BreezeJS的问题,breeze,Breeze,通过VS2012,我创建了一个新的asp.net MVC5项目。然后,我用Web.Api2模板添加了一个控制器 我成功地测试了这个项目,我的API层工作得很好。i、 e.在本地浏览器中使用\api\values\进行测试 我现在正试图添加NuGet包Breeze.Server.WebApi2,位于以下位置: https://www.nuget.org/packages/Breeze.Server.WebApi2/1.5.2 但是,我仍然无法使用localHost端口作为/Breeze/

通过VS2012,我创建了一个新的asp.net MVC5项目。然后,我用Web.Api2模板添加了一个控制器

我成功地测试了这个项目,我的API层工作得很好。i、 e.在本地浏览器中使用
\api\values\
进行测试

我现在正试图添加NuGet包Breeze.Server.WebApi2,位于以下位置:

    https://www.nuget.org/packages/Breeze.Server.WebApi2/1.5.2
但是,我仍然无法使用localHost端口作为
/Breeze/rage/Get

我得到一个oData错误:

    <ExceptionMessage>
     Could not load file or assembly 'Microsoft.Data.OData, Version=5.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

无法加载文件或程序集“Microsoft.Data.OData,版本=5.6.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。(来自HRESULT的异常:0x8013100)
System.IO.FileLoadException

我的csproj,章节:

<ItemGroup>
<Reference Include="Breeze.ContextProvider">
  <HintPath>..\packages\Breeze.Server.ContextProvider.1.5.2\lib\Breeze.ContextProvider.dll</HintPath>
</Reference>
<Reference Include="Breeze.ContextProvider.EF6">
  <HintPath>..\packages\Breeze.Server.ContextProvider.EF6.1.5.2\lib\Breeze.ContextProvider.EF6.dll</HintPath>
</Reference>
<Reference Include="Breeze.WebApi2">
  <HintPath>..\packages\Breeze.Server.WebApi2.1.5.2\lib\Breeze.WebApi2.dll</HintPath>
</Reference>
<Reference Include="EntityFramework">
  <HintPath>..\packages\EntityFramework.6.0.2\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer">
  <HintPath>..\packages\EntityFramework.6.0.2\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Data.Edm, Version=5.6.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Microsoft.Data.Edm.5.6.3\lib\net40\Microsoft.Data.Edm.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Data.OData, Version=5.6.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Microsoft.Data.OData.5.6.3\lib\net40\Microsoft.Data.OData.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
  <HintPath>..\packages\Newtonsoft.Json.6.0.7\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.Formatting, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.2\lib\net45\System.Net.Http.Formatting.dll</HintPath>
</Reference>
<Reference Include="System.Spatial, Version=5.6.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\System.Spatial.5.6.3\lib\net40\System.Spatial.dll</HintPath>
</Reference>
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Web.Http, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.2\lib\net45\System.Web.Http.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http.OData">
  <HintPath>..\packages\Microsoft.AspNet.WebApi.OData.5.2.2\lib\net45\System.Web.Http.OData.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http.WebHost, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.2\lib\net45\System.Web.Http.WebHost.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="WebActivator">
  <HintPath>..\packages\WebActivator.1.5.3\lib\net40\WebActivator.dll</HintPath>
</Reference>

..\packages\Breeze.Server.ContextProvider.1.5.2\lib\Breeze.ContextProvider.dll
..\packages\Breeze.Server.ContextProvider.EF6.1.5.2\lib\Breeze.ContextProvider.EF6.dll
..\packages\Breeze.Server.WebApi2.1.5.2\lib\Breeze.WebApi2.dll
..\packages\EntityFramework.6.0.2\lib\net45\EntityFramework.dll
..\packages\EntityFramework.6.0.2\lib\net45\EntityFramework.SqlServer.dll
假的
..\packages\Microsoft.Data.Edm.5.6.3\lib\net40\Microsoft.Data.Edm.dll
假的
..\packages\Microsoft.Data.OData.5.6.3\lib\net40\Microsoft.Data.OData.dll
..\packages\Newtonsoft.Json.6.0.7\lib\net45\Newtonsoft.Json.dll
假的
..\packages\Microsoft.AspNet.WebApi.Client.5.2.2\lib\net45\System.Net.Http.Formatting.dll
假的
..\packages\System.Spatial.5.6.3\lib\net40\System.Spatial.dll
假的
..\packages\Microsoft.AspNet.WebApi.Core.5.2.2\lib\net45\System.Web.Http.dll
..\packages\Microsoft.AspNet.WebApi.OData.5.2.2\lib\net45\System.Web.Http.OData.dll
假的
..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.2\lib\net45\System.Web.Http.WebHost.dll
..\packages\WebActivator.1.5.3\lib\net40\WebActivator.dll

以及packages.config文件:

    <?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Breeze.Client" version="1.5.2" targetFramework="net45" />
  <package id="Breeze.Server.ContextProvider" version="1.5.2" targetFramework="net45" />
  <package id="Breeze.Server.ContextProvider.EF6" version="1.5.2" targetFramework="net45" />
  <package id="Breeze.Server.WebApi2" version="1.5.2" targetFramework="net45" />
  <package id="Breeze.WebApi2.EF6" version="1.5.2" targetFramework="net45" />
  <package id="EntityFramework" version="6.0.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.Mvc" version="5.0.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Razor" version="3.0.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.OData" version="5.2.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages" version="3.0.0" targetFramework="net45" />
  <package id="Microsoft.Data.Edm" version="5.6.3" targetFramework="net45" />
  <package id="Microsoft.Data.OData" version="5.6.3" targetFramework="net45" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="6.0.7" targetFramework="net45" />
  <package id="Q" version="1.1.1" targetFramework="net45" />
  <package id="System.Spatial" version="5.6.3" targetFramework="net45" />
  <package id="WebActivator" version="1.5.3" targetFramework="net45" />
</packages>

非常感谢你的帮助

谢谢,
Bob

尝试在web.config中添加程序集绑定重定向:

<config>
  ...

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      ...

      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.6.3.0" newVersion="5.6.3.0" />
      </dependentAssembly>
      ...

    </assemblyBinding>
  <runtime>
  ...

</config>

...
...
...
...

请包括.csproj的参考部分和packages.config文件的内容。看起来您的OData软件包已经过时了。您尝试过更新吗?@PWKad-我的oData版本是~packages\Microsoft.AspNet.WebApi.oData.5.2.2~,但Breeze似乎在寻找5.6.0.0。我不知道如何更新Breeze以使用较新版本的oData。@JeremyDanyow-提供的内容。谢谢。@bob和所有新用户-Nuget包都有依赖项。如果依赖项是一个更新版本的软件包,你需要更新它。我决定使用straight Web.Api,直到找到一个永久的解决方案,谢谢。