Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Tentando resolver dependências:alterando a biblioteca padrão .NET para NET Core - Microsoft.Extensions.Primitives


Não sei o que exatamente você está fazendo, mas as referências rc1 parecem erradas, agora que o ASP.NET Core RTM saiu por vários meses.

Peguei a origem 1.0.0 (você precisa escolher especificamente a marca 1.0.0. A ramificação mestre é baseada no ASP.NET Core 1.1).

A única coisa que mudei foi project.json (Descarreguei os outros projetos não relacionados e projetos de teste descarregados, exceto Microsoft.Extensions.Caching.Redis.Test .

Este é meu project.json (de Microsoft.Extensions.Caching.Redis ):
{
  "version": "1.0.0",
  "description": "Distributed cache implementation of Microsoft.Extensions.Caching.Distributed.IDistributedCache using Redis.",
  "packOptions": {
    "repository": {
      "type": "git",
      "url": "https://github.com/aspnet/caching"
    },
    "tags": [
      "cache",
      "distributedcache",
      "redis"
    ]
  },
  "buildOptions": {
    "warningsAsErrors": true,
    "keyFile": "../../tools/Key.snk",
    "nowarn": [
      "CS1591"
    ],
    "xmlDoc": true
  },
  "dependencies": {
    "Microsoft.Extensions.Caching.Abstractions": "1.0.0",
    "Microsoft.Extensions.Options": "1.0.0",
    "StackExchange.Redis.StrongName": "1.1.608"
  },
  "frameworks": {
    "netstandard1.5": { },
    "net451": {
      "dependencies": { },
      "frameworkAssemblies": {
        "System.Runtime": {
          "type": "build"
        }
      }
    }
  }
}

Nenhuma alteração necessária em Microsoft.Extensions.Caching.Abstractions .

Alternativamente, você pode usar StackExchange.Redis em vez de StackExchange.Redis.StrongName que não tem um nome forte (assinado). Não tenho certeza se o pacote criado/compilado será assinado com a mesma chave dos outros pacotes, o que pode gerar problemas posteriormente. Se você usar um não assinado, isso também poderá criar problemas, se seu aplicativo tiver um nome forte (ou se você tiver um requisito comercial de que todos os assemblies sejam assinados com segurança).

Isso compila e os testes de unidade passam, não testei mais.

Quanto ao resto da sua pergunta:

O destino do nuget ".NET Core 5" é dnx50 que foi usado até o ASP.NET Core rc1. Com o rc2 ASP.NET Core alternado para o dotnet-cli e o DNX não é compatível agora e não receberá mais atualizações. Com rc2 o netstandard foi introduzido para simplificar a criação de bibliotecas de classes que podem ter como alvo a maioria das plataformas disponíveis (full .NET Framework, .NET Core, WinRT/WindowsPhone/Windows8/Windows10, mono, Xamarin, etc). Você pode aprender mais sobre a Biblioteca Padrão .NET.