Ho provato a configurare un'applicazione di rete core .net che utilizza l' EF core 2.0.0
e Redis.Core 1.0.3
(entrambi sono la versione più recente).
Sfortunatamente, se provi a mettere entrambi in un'unica applicazione, non inizierà nemmeno. Anche se si tenta di impostare un punto di interruzione all'inizio o avviare il debugging con Step into
o Step Over
non aiuta. Tutto ciò che ottieni è questo:
Penso che accada qualche tipo di eccezione di caricamento del tipo o qualcosa di simile. Finora per riprodurre il problema è abbastanza facile con questo progetto:
File di progetto ( 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>
Applicazione ( 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()));
}
}
}
Qualcuno un'idea o una soluzione?
Il problema è che
Microsoft.Extensions.Caching.Redis.RedisCache 1.0.3
dipende da Microsoft.Extensions.Caching.Abstractions 1.0.3
Microsoft.EntityFrameworkCore 2.0.0
dipende da Microsoft.Extensions.Caching.Abstractions 2.0.0
Se guardi la finestra di output, otterrai:
TypeLoadException
: metodoGetAsync
nel tipoMicrosoft.Extensions.Caching.Redis.RedisCache
dall'assembly 'Microsoft.Extensions.Caching.Redis, Version = 1.0.3.0, Culture = neutral, PublicKeyToken = adb9793829ddae60' non ha un'implementazione.
Quindi: attendere che RedisCache
venga aggiornato alla 2.0.0
o usare EntityFrameworkCore < 2.0.0