Redis
 sql >> Database >  >> NoSQL >> Redis

Cercando di risolvere le dipendenze:modifica della libreria .NET Standard in NET Core - Microsoft.Extensions.Primitives

Non so cosa stai facendo esattamente, ma i riferimenti rc1 sembrano sbagliati, ora che ASP.NET Core RTM è disponibile da diversi mesi.

Ho preso il sorgente 1.0.0 (devi scegliere in modo specifico il tag 1.0.0. Il ramo principale è basato su ASP.NET Core 1.1).

L'unica cosa che ho cambiato è project.json (Ho scaricato gli altri progetti non correlati scaricati e testati i progetti tranne Microsoft.Extensions.Caching.Redis.Test .

Questo è il mio project.json (di 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"
        }
      }
    }
  }
}

Nessuna modifica richiesta in Microsoft.Extensions.Caching.Abstractions .

In alternativa puoi usare StackExchange.Redis invece di StackExchange.Redis.StrongName che non ha un nome forte (firmato). Non sono sicuro se il pacchetto così creato/compilato verrà firmato con la stessa chiave degli altri pacchetti, il che potrebbe creare problemi in seguito. Se ne usi uno non firmato, potrebbe anche creare problemi, se la tua applicazione ha un nome sicuro (o hai requisiti aziendali che tutti gli assembly siano firmati in modo sicuro).

Questo viene compilato e gli unit test passano, non sono stati testati ulteriormente.

Per quanto riguarda il resto della tua domanda:

La destinazione del nuget ".NET Core 5" è dnx50 che è stato utilizzato fino a ASP.NET Core rc1. Con rc2 ASP.NET Core passato a dotnet-cli e DNX ora non è supportato e non riceverà ulteriori aggiornamenti. Con rc2 il netstandard è stato introdotto per semplificare la creazione di librerie di classi che possono indirizzare la maggior parte delle piattaforme disponibili (.NET Framework completo, .NET Core, WinRT/WindowsPhone/Windows8/Windows10, mono, Xamarin, ecc.). Puoi saperne di più sulla libreria .NET Standard.