質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

3919閲覧

厳密な署名の必要性とグローバルアセンブリキャッシュのメリット

testset

総合スコア221

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2018/03/28 17:25

導入

C#(.NET 4.5系)で開発をしていますが、アセンブリに厳密な名前をするオプションがあるかと存じます。これを有効にすべきなのかいまだに解けていないので、何か知見があれば(誤りや認識が漏れていることがあれば)ご教授願います。

質問

以下の中でグローバルアセンブリキャッシュに乗せることがありますが、
利点は何でしょうか?
また、アプリケーションを作成するうえで、厳密な署名を行うべきなのでしょうか?
※exeアプリケーションで公的証明機関に署名してもらうことはない前提とさせてください。
※インストールが必要な時点で、グローバルアセンブリキャッシュには乗せない方針

厳密な署名を行うことによるメリット

厳密な署名を行うことで、以下のようなことが享受できる認識です。

  • 発行元を証明できる
  • ライブラリ間でinternalな空間へ相互にアクセスすることができる(主に単体テストで役に立つ)
  • ハッシュコードが短くなり、%AppData%に格納される識別子が短くなる
  • グローバル アセンブリ キャッシュに載せることができる

厳密な署名を行うことによる弊害

  • 未署名のライブラリを使用することができない
  • 参照するライブラリを更新したとき、アセンブリバージョンを変更した場合、同時にビルドしないと参照できなくなる?(未検証)

これは、更新のあったバイナリのみ(ビルド後のバイナリ差分98%未満)をリリース対象として管理していたため、問題となりました。

参考文献

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

悩むなら必要ありません。
厳密名は ClickOnce とか他のアプリからパスを気にせず使える汎用ライブラリとか作る時にどうしても必要になるので、必要性を感じないなら要らないということです。

投稿2018/03/28 23:16

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問