StackExchange.Redis和StackExchange.Redis.StrongName有什么区别?

Moh*_*rag 32 azure redis stackexchange.redis

在我关注如何在Azure门户中使用Redis缓存的Azure 文档时,我注意到了这个注释:

如果您更喜欢使用StackExchange.Redis客户端库的强命名版本,请选择StackExchange.Redis.StrongName; 否则选择StackExchange.Redis.

什么是强名?什么是过程和缺点?如何在我的申请中决定我是否需要它?

Phi*_* P. 20

你需要一个强名称的Redis库吗?很有可能,特别是如果你从未遇到过这个术语,答案是否定的.但请继续阅读.

什么是强名?

  • 这是.NET特有的东西
  • 您可以选择使用加密密钥对程序集进行签名
  • 这样就可以验证您实际上正在加载/运行您希望加载/运行的内容
  • "强名称"包括加密签名以及通常的名称,版本和类似的东西.

你有没有需要强大的名字?

  • 可能没有,除非你有特殊的理由.其中一些可能是:
  • 历史性的(我们曾经签署过我们的集会,为什么现在改变)
  • 公司政策
  • 特殊情况,例如您正在使用的其他内容需要强名称(如果您想要向GAC添加内容,则曾经要求具有强名称)
  • 可能的安全考虑

签署你的集会是一个好主意吗?

  • 有很多分歧的意见
  • 很多时候,强大的名字在很多方面都是痛苦的,并带来可疑的好处
  • 除非你真的必须,否则最近不使用强名称是一种趋势

难道需要一个强命名的Redis库?

  • 除非您决定或必须签署自己的使用Redis库的应用程序,否则不会
  • Redis库的强名称版本与另一个版本完全相同
  • 它的存在仅仅是为了让那些需要使用强名字的人的生活变得更容易


Edm*_*g99 14

除了签署的无符号VS组件参数,RedisSessionStateProvider对依赖StackExchange.Redis.StrongName

因此,如果要使用RedisSessionStateProvider,请选择StrongName版本,除非您希望具有两个依赖项.

更新:正如@Matei_Radu指出的那样,Microsoft.AspNet.SignalR.Redis也依赖于StackExchange.Redis.StrongName

您只能在单个程序集中依赖一个(有符号或无符号),但如果您有多个项目,则可能依赖于两个项目.它可以简化事情,只保留签名版本以避免问题