Nie wiem, co dokładnie robisz, ale odwołania do rc1 wydają się błędne, teraz, gdy ASP.NET Core RTM jest niedostępny przez kilka miesięcy.
Złapałem źródło 1.0.0 (musisz konkretnie wybrać tag 1.0.0. Gałąź główna jest oparta na ASP.NET Core 1.1).
Jedyne, co zmieniłem, to project.json
(Wyładowałem inne rozładowane, niepowiązane projekty i projekty testowe, z wyjątkiem Microsoft.Extensions.Caching.Redis.Test
.
To jest mój project.json
(z 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"
}
}
}
}
}
Żadne zmiany nie są wymagane w Microsoft.Extensions.Caching.Abstractions
.
Alternatywnie możesz użyć StackExchange.Redis
zamiast StackExchange.Redis.StrongName
który nie jest silny nazwany (podpisany). Nie jestem pewien, czy tak utworzony/skompilowany pakiet będzie podpisany tym samym kluczem, co inne pakiety, co może później powodować problemy. Jeśli używasz niepodpisanego, może to również powodować problemy, jeśli Twoja aplikacja ma silną nazwę (lub masz wymóg biznesowy, aby wszystkie zestawy były silnie podpisane).
To się kompiluje i testy jednostkowe przechodzą, nie testowano dalej.
Co do reszty pytania:
„.NET Core 5” obiekt docelowy nuget to dnx50
który był używany aż do ASP.NET Core rc1. Z rc2 ASP.NET Core przełączonym na dotnet-cli i DNX nie jest teraz obsługiwane i nie będzie otrzymywać żadnych dalszych aktualizacji. Z rc2 netstandard
wprowadzono w celu uproszczenia tworzenia bibliotek klas, które mogą być przeznaczone dla większości dostępnych platform (pełny .NET Framework, .NET Core, WinRT/WindowsPhone/Windows8/Windows10, mono, Xamarin, itp.). Możesz dowiedzieć się więcej o standardowej bibliotece .NET.