我安装了Redis StackExchange nuget并且工作正常。但后来我安装了RedisSessionStateProvider nuget,它安装了StackExchange.Redis.StrongName。
现在我收到以下错误,
错误107两者中都存在“StackExchange.Redis.IDatabase”类型 'E:\来源\包\ StackExchange.Redis.1.0.481 \ LIB \ net45 \ StackExchange.Redis.dll' 和 'e:\ Source \ packages \ StackExchange.Redis.StrongName.1.0.481 \ lib \ net45 \ StackExchange.Redis.StrongName.dll'E:\ Source \ MyApp \ Helpers \ RedisHelper \ StackExchangeRedisExtensions.cs 13 37 MyApp
为什么会这样?
答案 0 :(得分:8)
强名称的dll与非强名称的dll名称空间之间存在很多混淆。
您可以使用extern alias
轻松解决此问题。
Aliases
字段值更改为您想要的任何值。例如:“Redis”。然后转到您的消费者源文件并添加:
extern alias Redis;
using System;
// ... other references
using Redis::StackExchange.Redis;
namespace Foo
{
public class Program
{
public static void Main(string[] args)
{
using (ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("myConn"))
{
// use StackExchange API here.
}
}
}
}
还有一个issue on StackExchange's repository解释了有关StrongName与Non-StrongName的更多信息。
答案 1 :(得分:4)
以上两个dll中的某些方法/属性/接口是duplicated
。
删除StackExchange.Redis引用以解决错误。
答案 2 :(得分:-1)
我在ASP.NET核心应用中遇到了这个问题,this答案很快就解决了我的问题。