我尝试设置一个使用 EF core 2.0.0
的 .net 核心控制台应用程序和 Redis.Core 1.0.3
(均为当前最新版本)。
不幸的是,如果您尝试将两者都放入一个应用程序中,它甚至不会启动。即使您尝试在开始时设置断点或使用 Step into
或 Step Over
开始调试也无济于事。你得到的是:
我认为发生了某种类型的加载异常或类似的事情。到目前为止,使用此项目重现问题非常容易:
项目文件(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()));
}
}
}
有任何想法或解决方案吗?
最佳答案
问题是
-
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
: MethodGetAsync
in typeMicrosoft.Extensions.Caching.Redis.RedisCache
from assembly 'Microsoft.Extensions.Caching.Redis, Version=1.0.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' does not have an implementation.
所以:要么等到 RedisCache
更新为 2.0.0
或使用 EntityFrameworkCore < 2.0.0
关于c# - EF Core 2.0.0 和 Redis.Core 1.0.3 不能一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46669196/