質問

複数のC#クラスライブラリを含むAC#ソリューションがあります。私は最近いくつかの調査を行っていますが、ライブラリからの出力アセンブリに署名し、強い名前で署名することが提案されています。まず、私がそのように進歩するのがベストかどうか疑問に思っていますか?これらのクラスライブラリから出力されたライブラリは、他の複数のプロジェクトで使用されます。

私の以前の質問から、はい、私が使用している.snkに署名する必要があることをアドバイスした場合、これはソリューション内の各クラスライブラリに使用できますか?それとも、クラスごとに1つのキーでなければなりませんか?

役に立ちましたか?

解決

アセンブリに署名することが要件です。これはあなたが望むなら真実です gac あなたのアセンブリ、または署名されたアセンブリが別のアセンブリを参照したい場合。

同じものを再利用できます .snk ファイル、そしてそうすることで、すべてのアセンブリに対して同じ公開キートークンが得られます。

他のヒント

多数のアセンブリが使用するためにAssemblyをGACに入れようとする場合は不可欠です。

インストールするのではなく使用するためにユーザーにそれを提供する場合は有利です。なぜなら、それはあなたが彼らに与えていると言ったファイルではなく、あなたが彼らに与えていると言ったファイルであるというある程度の安心を提供するからです。

エンティティごとに少数の(おそらく1つの)SNKファイル(個人、集団、オープンソースグループ、または会社)を使用することは良いことです。彼らが確信している公開鍵はあなたのものであると確信しています、そして彼らは次回もそれを信頼するでしょう。毎回別の手書きの署名でチェックに署名したくないでしょうか?

DLLに署名することは、GACでDLLを公開するための要件です。 DLL署名の本当の利点は以下のとおりです。

1.バージョン化

2.認証

a。バージョン化は、DLLがビルドされているバージョンを示し、同じ名前でGAC 2 DLLにプッシュすると、異なるバージョンで存在する可能性があります

b。認証は意味します DLLが改ざんされていないかどうか そして、それが作成されたときに同じ存在します。

DLL署名に関する詳細なブログが利用可能です ここ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top