C# 在ASP.NET 5/MVC 6中使用IDistributedCache和Redis-类型或命名空间';Microsoft.Caching';不存在
我正在试验在MVC6中使用Redis缓存,但我无法构建我的项目 我遵循了上的示例-有一个IDistributedCache示例和一个Redis示例。然而,这并不完全清楚,因为Redis示例不是一个web应用程序 我的project.json依赖项中有以下内容:C# 在ASP.NET 5/MVC 6中使用IDistributedCache和Redis-类型或命名空间';Microsoft.Caching';不存在,c#,caching,asp.net-core,asp.net-core-mvc,C#,Caching,Asp.net Core,Asp.net Core Mvc,我正在试验在MVC6中使用Redis缓存,但我无法构建我的项目 我遵循了上的示例-有一个IDistributedCache示例和一个Redis示例。然而,这并不完全清楚,因为Redis示例不是一个web应用程序 我的project.json依赖项中有以下内容: "Microsoft.Framework.Cache.Memory": "1.0.0-beta3", "Microsoft.Framework.Caching.Distributed": "1.0.0-*", "M
"Microsoft.Framework.Cache.Memory": "1.0.0-beta3",
"Microsoft.Framework.Caching.Distributed": "1.0.0-*",
"Microsoft.Framework.Caching.Redis": "1.0.0-*",
我用这个来获取我的包:
kpm安装Microsoft.Framework.Caching.Distributed
及
kpm安装Microsoft.Framework.Caching.Redis
两个命令都起作用并返回OK
在我的创业公司中,我尝试了以下几点:
services.AddSingleton<IMemoryCache, MemoryCache>();
services.AddSingleton<IDistributedCache, RedisCache>();
services.AddSingleton();
services.AddSingleton();
尝试生成或运行时,给出的错误为:
cs(10,27):错误CS0234:类型或命名空间名称“缓存”
命名空间“Microsoft.Framework”中不存在(是否缺少)
程序集引用?)Startup.cs(11,27):错误CS0234:类型或
命名空间中不存在命名空间名称“缓存”
“Microsoft.Framework”(是否缺少程序集引用?)
cs(25,35):错误CS0246:类型或命名空间名称
找不到“IDistributedCache”(您是否缺少使用
指令或程序集参考?)Startup.cs(25,54):错误CS0246:
找不到类型或命名空间名称“RedisCache”(是否为“”)
缺少使用指令或程序集引用?)
现在很明显,我有错误的参考资料-但什么是正确的参考资料?我直接从样本中复制名称空间?我尝试切换到Microsoft.Cache.Distributed,但也没有成功(与github冲突)
我有一种感觉,这与没有正确的K版本有关,也许这就是出路——升级到最新版本。Framework.Cache.Memory和Framework.Cache.Distributed之间不匹配,我看到github注释与命名空间更改有关
如果有人能指出走出这个迷宫的路,我将不胜感激
以下答案适用于缓存库的1.0.0-beta4版本,对应于此处:
位于Microsoft.Framework.Caching.Memory
命名空间下,位于Microsoft.Framework.Caching.Distributed
命名空间下
依赖项如下所示:
"dependencies": {
"Microsoft.Framework.Caching.Memory": "1.0.0-beta4",
"Microsoft.Framework.Caching.Distributed": "1.0.0-beta4",
"Microsoft.Framework.Caching.Redis": "1.0.0-beta4"
}
因此,
Microsoft.Framework.Cache.Memory
是Microsoft.Framework.Caching.Memory
请尝试beta4而不是beta3beta4,特别是对于整个项目,问题是这些名称空间没有得到解决。如果您看到我的project.json引用,我在中有这些引用(它们在startup.cs文件中也被声明为“using”语句)。我已经尝试了这一点,但不幸的是,我的整个安装都失败了。也尝试过从KRE到DNX,但也失败了。从beta3跳到beta4是致命的。我必须完成这项工作,当我清理甲板并重新运行时,我会回来。好的,这项工作我终于开始了。但问题是,除了Redis之外,还有其他分布式缓存实现吗?