What is the difference between StackExchange.Redis and StackExchange.Redis.StrongName?

前端 未结 3 1037
攒了一身酷
攒了一身酷 2021-02-03 19:36

While I was following Azure documentation for how to use Redis Cache in Azure Portal I noticed this note:

If you prefer to use a strong-named version of t

相关标签:
3条回答
  • 2021-02-03 20:27

    Do you need a strongly named Redis library? In all likelihood, especially if you never even encountered this term, the answer is no. But read on.

    What is strongly named?

    • it's a .NET specific thing
    • you can choose to sign your assembly with a cryptographic key
    • this makes it possible to verify that you are actually loading/running something you expect to load/run
    • the "strong name" includes the cryptographic signature together with the the usual name, version and things like that.

    Do you ever need strong names?

    • probably not unless you have specific reasons. Some of these may be:
    • historic (we used to sign our assemblies and why change now)
    • corporate policies
    • special circumstances such as something else you are using requires strong names (it used to be a requirement to have strong name if you wanted to add something to the GAC)
    • possibly security considerations

    Is it a good idea to sign your assemblies?

    • there are a lot of divided opinions
    • very often strong names are a pain in so many ways with questionable benefits
    • it has been a trend lately to not use strong names unless you really must

    Do you need a strongly named Redis library?

    • unless you decide or have to sign your own application which uses Redis library you don't
    • the strong names version of Redis library is identical to the other one
    • it exists solely for the reason to make lives of those who need to use strong names easier
    0 讨论(0)
  • 2021-02-03 20:31

    The strong name version is for developers who use strongly named assemblies in sharepoint and com+ development. The nuget package dev himself says that there is no simple answer for this question. Read the blog post here http://blog.marcgravell.com/2014/06/snk-we-need-to-talk.html

    0 讨论(0)
  • 2021-02-03 20:37

    Aside from the signed vs unsigned assemblies argument, the RedisSessionStateProvider has a dependency on StackExchange.Redis.StrongName

    So if you want to use RedisSessionStateProvider, choose the StrongName version unless you want to have two dependencies.

    Update: As @Matei_Radu has pointed out, Microsoft.AspNet.SignalR.Redis also has a dependency on StackExchange.Redis.StrongName

    You can only have a dependency on one (either signed or unsigned) in a single assembly, but if you have multiple projects, you might have dependencies on both. It may simplify things to keep only the signed version to avoid problems

    0 讨论(0)
提交回复
热议问题