sql >> Base de Datos >  >> NoSQL >> Redis

Intentando resolver dependencias:cambiando la biblioteca estándar de .NET a NET Core - Microsoft.Extensions.Primitives

No sé qué está haciendo exactamente, pero las referencias rc1 parecen incorrectas, ahora que ASP.NET Core RTM está disponible desde hace varios meses.

Agarré la fuente 1.0.0 (debe elegir específicamente la etiqueta 1.0.0. La rama maestra se basa en ASP.NET Core 1.1).

Lo único que cambié es project.json (Descargué los otros proyectos descargados no relacionados y proyectos de prueba excepto Microsoft.Extensions.Caching.Redis.Test .

Este es mi 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"
        }
      }
    }
  }
}

No se requieren cambios en Microsoft.Extensions.Caching.Abstractions .

Alternativamente, puede usar StackExchange.Redis en lugar de StackExchange.Redis.StrongName que no tiene un nombre fuerte (firmado). No estoy seguro de si el paquete así creado/compilado se firmará con la misma clave que los otros paquetes, lo que puede crear problemas más adelante. Si usa uno sin firmar, también puede crear problemas, si su aplicación tiene un nombre seguro (o si tiene un requisito comercial de que todos los ensamblajes estén firmados).

Esto compila y las pruebas unitarias pasan, no probó más.

En cuanto al resto de su pregunta:

El destino nuget ".NET Core 5" es dnx50 que se usó hasta ASP.NET Core rc1. Con rc2 ASP.NET Core cambiado a dotnet-cli y DNX ahora no es compatible y no recibirá más actualizaciones. Con rc2 el netstandard se introdujo para simplificar la creación de bibliotecas de clases que pueden tener como destino la mayoría de las plataformas disponibles (.NET Framework completo, .NET Core, WinRT/WindowsPhone/Windows8/Windows10, mono, Xamarin, etc.). Puede obtener más información sobre la biblioteca estándar de .NET.