尝试解决依赖关系:将 .NET 标准库更改为 NET Core - Microsoft.Extensions.Primitives
Trying to resolve dependencies: Changing .NET Standard Library to NET Core - Microsoft.Extensions.Primitives
我是 运行 Visual Studio 2015 更新 3。我正在尝试将 Redis 缓存用于 .Net 核心应用程序。因为,开发的包是针对 .Net 标准库的。我从 github 下载代码并尝试更改我自己的依赖项。
以下是项目:
首先,我尝试将抽象 Class 库更改为目标 .Net Core,然后我尝试添加 Microsoft.Extensions.Primitives,由于版本1不支持.NET Core。我添加了最终的预包:
Install-Package Microsoft.Extensions.Primitives -Version 1.0.0-rc1-final -Pre
无法解析,表示
The dependency Microsoft.Extensions.Primitives >= 1.0.0-rc1-final could not be resolved.
我如何修复它以使其适用于 .NET Core? .NET Core 1 与 .NET Core 5 有何不同,因为它们是我安装的包的依赖项?
为什么所有包都支持 .NET Standard Libary 而不是 .NET Core?
不知道你到底在做什么,但 rc1 引用似乎是错误的,现在 ASP.NET Core RTM 已经发布几个月了。
我抓取了 1.0.0 源代码(你必须专门选择 1.0.0 标签。Master 分支基于 ASP.NET Core 1.1)。
我唯一改变的是project.json
(我卸载了除Microsoft.Extensions.Caching.Redis.Test
之外的其他卸载的无关项目和测试项目。
这是我的 project.json
(属于 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"
}
}
}
}
}
Microsoft.Extensions.Caching.Abstractions
中不需要更改。
或者,您可以使用 StackExchange.Redis
而不是 StackExchange.Redis.StrongName
,后者不是强命名(已签名)。不确定 so created/compiled 包是否会使用与其他包相同的密钥进行签名,这可能会在以后产生问题。如果您使用未签名的,那么它也可能会产生问题,如果您的应用程序本身是强命名的(或者您有业务要求所有程序集都是强签名的)。
此编译和单元测试通过,没有进一步测试。
至于你剩下的问题:
".NET Core 5" nuget 目标是 dnx50
,一直用到 ASP.NET Core rc1。使用 rc2 ASP.NET 核心切换到 dotnet-cli,DNX 现在不受支持,不会收到任何进一步的更新。 rc2 引入了 netstandard
以简化 class 库的创建,这些库可以针对大多数可用平台(完整的 .NET Framework、.NET Core、WinRT/WindowsPhone/Windows8/Windows10、mono、Xamarin 等) .您可以了解有关 .NET Standard Library.
的更多信息
我是 运行 Visual Studio 2015 更新 3。我正在尝试将 Redis 缓存用于 .Net 核心应用程序。因为,开发的包是针对 .Net 标准库的。我从 github 下载代码并尝试更改我自己的依赖项。
以下是项目:
首先,我尝试将抽象 Class 库更改为目标 .Net Core,然后我尝试添加 Microsoft.Extensions.Primitives,由于版本1不支持.NET Core。我添加了最终的预包:
Install-Package Microsoft.Extensions.Primitives -Version 1.0.0-rc1-final -Pre
无法解析,表示
The dependency Microsoft.Extensions.Primitives >= 1.0.0-rc1-final could not be resolved.
我如何修复它以使其适用于 .NET Core? .NET Core 1 与 .NET Core 5 有何不同,因为它们是我安装的包的依赖项?
为什么所有包都支持 .NET Standard Libary 而不是 .NET Core?
不知道你到底在做什么,但 rc1 引用似乎是错误的,现在 ASP.NET Core RTM 已经发布几个月了。
我抓取了 1.0.0 源代码(你必须专门选择 1.0.0 标签。Master 分支基于 ASP.NET Core 1.1)。
我唯一改变的是project.json
(我卸载了除Microsoft.Extensions.Caching.Redis.Test
之外的其他卸载的无关项目和测试项目。
这是我的 project.json
(属于 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"
}
}
}
}
}
Microsoft.Extensions.Caching.Abstractions
中不需要更改。
或者,您可以使用 StackExchange.Redis
而不是 StackExchange.Redis.StrongName
,后者不是强命名(已签名)。不确定 so created/compiled 包是否会使用与其他包相同的密钥进行签名,这可能会在以后产生问题。如果您使用未签名的,那么它也可能会产生问题,如果您的应用程序本身是强命名的(或者您有业务要求所有程序集都是强签名的)。
此编译和单元测试通过,没有进一步测试。
至于你剩下的问题:
".NET Core 5" nuget 目标是 dnx50
,一直用到 ASP.NET Core rc1。使用 rc2 ASP.NET 核心切换到 dotnet-cli,DNX 现在不受支持,不会收到任何进一步的更新。 rc2 引入了 netstandard
以简化 class 库的创建,这些库可以针对大多数可用平台(完整的 .NET Framework、.NET Core、WinRT/WindowsPhone/Windows8/Windows10、mono、Xamarin 等) .您可以了解有关 .NET Standard Library.