StackExchange.Redis.IDatabase存在于两个dll中

Dha*_*777 3 asp.net-mvc redis

我安装了Redis StackExchange nuget,工作正常.但后来我安装了RedisSessionStateProvider nuget,它安装了StackExchange.Redis.StrongName.

现在我收到以下错误,

错误107'e:\ Source\packages\StackExchange.Redis.1.0.481\lib \net45\StackExchange.Redis.dll'和'e:\ Source\packages\StackExchange中都存在'StackExchange.Redis.IDatabase'类型.Redis.StrongName.1.0.481\lib \net45\StackExchange.Redis.StrongName.dll'E:\ Source\MyApp\Helpers\RedisHelper\StackExchangeRedisExtensions.cs 13 37 MyApp

为什么是这样?

Ber*_*nde 8

强命名的dll和非强命名的dll命名空间之间存在很多混淆.

你可以通过使用轻松解决这个问题extern alias.

  1. 右键单击项目引用并选择要引用的dll,转到属性窗口.然后,将Aliases字段值更改为您想要的任何值.例如:"Redis".
  2. 然后转到您的消费者源文件并添加:

    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.
                }
            }
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

StackExchange的存储库中还存在一个问题,解释了有关StrongName与Non-StrongName的更多信息.