2017-10-10 61 views
2

我試圖設置一個使用EF core 2.0.0Redis.Core 1.0.3(都是當前最新版本)的.net核心控制檯應用程序。EF Core 2.0.0和Redis.Core 1.0.3不能一起工作

不幸的是,如果您嘗試將兩者都放入一個應用程序,它甚至不會啓動。即使您嘗試在開始處設置斷點,或者開始使用Step intoStep Over進行調試也無濟於事。所有你得到的是這樣的: The application is in break mode

我認爲會發生某種類型的負載異常或類似的東西。到目前爲止,來重現問題是很容易與這個項目:

項目文件(MyProject.csproj

<Project Sdk="Microsoft.NET.Sdk"> 

    <PropertyGroup> 
    <OutputType>Exe</OutputType> 
    <TargetFramework>netcoreapp2.0</TargetFramework> 
    </PropertyGroup> 

    <ItemGroup> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.0" /> 
    <PackageReference Include="Microsoft.Extensions.Caching.Redis.Core" Version="1.0.3" /> 
    </ItemGroup> 

</Project> 

應用(Program.cs

using Microsoft.Extensions.Caching.Redis; 
using Microsoft.Extensions.Options; 

namespace MyApplication 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var cache = new RedisCache(Options.Create(new RedisCacheOptions())); 
     } 
    } 
} 

任何人的想法或解決方案?

回答

2

的問題是,

  • Microsoft.Extensions.Caching.Redis.RedisCache 1.0.3取決於Microsoft.Extensions.Caching.Abstractions 1.0.3
  • Microsoft.EntityFrameworkCore 2.0.0取決於Microsoft.Extensions.Caching.Abstractions 2.0.0

如果你看看輸出窗口,你會得到:

TypeLoadException :方法GetAsync類型 Microsoft.Extensions.Caching.Redis.RedisCache程序集 'Microsoft.Extensions.Caching.Redis,Version = 1.0.3.0,Culture = neutral, PublicKeyToken = adb9793829ddae60'沒有實現。

於是:要麼等到RedisCache被更新爲2.0.0或使用EntityFrameworkCore < 2.0.0