GAC


GAC(グローバルアセンブリキャッシュ)とはアセンブリを登録しておく場所。
デフォルトではWINDOWS\assemblyフォルダがそこにあたる。


ここに登録してあるアセンブリは全体で共有できる。
以前のレジストリに登録しておくのと似たようなもの。


assemblyに登録するには作成したDLLをassemblyフォルダへドラッグするだけでOK。
また、gacutil.exeというツールでGACを管理することも可能。
(GAC登録するファイルには厳密名をつけておく必要があり。)





GACを用いたアプリの作成手順


1.参照するDLLを作成


2.1で作成したDLLに署名し、厳密名をつける


3.2をGACに登録
※DLLはGACに登録したら消してしまっても構わない。
おそらく、実体はassemblyフォルダにコピーされるものだと思われる。



4.DLLを参照するexeを作成


5.ソリューションエクスプローラで「プロジェクト」を右クリック→「追加」→「新しい項目」→「アプリケーション構成ファイル」を作成


6.作成したアプリケーション構成ファイルに以下のようにDLLの参照情報を記述
※name、publickeytoken、cultureなどの値はassemblyフォルダにあるアセンブリのプロパティより判別できる


app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="ClassLibrary2"
                              publicKeyToken="4a3c2b05dacbad70"
                              culture="neutral" />
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>


7.作成したexeをコンパイル


この手順で作成されたexeはどこに配置しようがDLLの参照が可能