我尝试设置一个使用EF core 2.0.0
和Redis.Core 1.0.3
的.net核心控制台应用程序(两者都是当前的最新版本)。
不幸的是,如果你试图将两者放在一个应用程序中,它甚至都不会启动。即使您尝试在开头设置断点或使用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()));
}
}
}
有人有想法或解决方案吗?
答案 0 :(得分: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
&#39; Microsoft.Extensions.Caching.Redis,Version = 1.0.3.0,Culture = neutral, 公钥= adb9793829ddae60&#39;没有实施。
所以:要等到RedisCache
更新为2.0.0
或使用EntityFrameworkCore < 2.0.0