web-dev-qa-db-ja.com

StackExchange.RedisとStackExchange.Redis.StrongNameの違いは何ですか?

Azureをフォローしているときに documentation Azure PortalでRedis Cacheを使用する方法について、このメモに気付きました。

StackExchange.Redisクライアントライブラリの厳密な名前のバージョンを使用する場合は、StackExchange.Redis.StrongNameを選択します。それ以外の場合は、StackExchange.Redisを選択します。

厳密な名前は何ですか?そして、procと短所は何ですか?アプリケーションで必要かどうかを判断するにはどうすればよいですか?

34
Mohamed Farrag

厳密に命名されたRedisライブラリが必要ですか?おそらく、特にこの用語に出会ったことがない場合は、答えはnoです。しかし、読み続けてください。

強い名前は何ですか?

  • それは.NET固有のものです
  • 暗号鍵でアセンブリに署名することを選択できます
  • これにより、実際にロード/実行するものをロード/実行していることを確認できます
  • 「強力な名前」には、通常の名前、バージョンなどの暗号化署名が含まれています。

厳密な名前が必要ですか?

  • 特定の理由がない限り、おそらくそうではありません。これらのいくつかは次のとおりです。
  • 歴史的(私たちは私たちのアセンブリに署名するために使用し、なぜ今変更するのか)
  • 企業ポリシー
  • 他に使用しているような特別な状況では厳密な名前が必要です(GACに何かを追加する場合は、以前は厳密な名前が必要でした)
  • おそらくセキュリティ上の考慮事項

アセンブリに署名することは良い考えですか?

  • 意見が分かれている
  • 多くの場合、厳密な名前は非常に多くの点で苦痛であり、疑わしい利点があります
  • 最近、本当に必要な場合を除いて、厳密な名前を使用しない傾向にあります

あなたは厳密に命名されたRedisライブラリを必要としますか?

  • redisライブラリを使用する独自のアプリケーションに署名する必要がある場合を除き、
  • redisライブラリの厳密な名前のバージョンは他のバージョンと同じです
  • 厳密な名前を使用する必要がある人々の生活をより簡単にする理由のためだけに存在します
19
Philip P.

署名されたアセンブリと署名されていないアセンブリの引数は別として、 RedisSessionStateProviderStackExchange.Redis.StrongNameに依存しています。

したがって、RedisSessionStateProviderを使用する場合は、2つの依存関係が必要でない限り、StrongNameバージョンを選択してください。

Update:@Matei_Raduが指摘したように、 Microsoft.AspNet.SignalR.Redisに依存しています。 StackExchange.Redis.StrongName

1つのアセンブリで依存できるのは1つ(署名付きまたは署名なし)だけですが、複数のプロジェクトがある場合は、両方に依存している可能性があります。問題を回避するために、署名されたバージョンのみを保持することにより、物事が簡素化される場合があります

13
EdmundYeung99

厳密な名前のバージョンは、Sharepointおよびcom +開発で厳密に名前が付けられたアセンブリを使用する開発者向けです。 nugetパッケージ開発者自身は、この質問に対する単純な答えはないと述べています。こちらのブログ投稿をご覧ください http://blog.marcgravell.com/2014/06/snk-we-need-to-talk.html

1
Aravind