1. ホーム
  2. .net

[解決済み] .NETのGACとは何ですか?

2022-04-13 23:14:40

質問

素人向けにGACの簡単な概要を知りたいのですが、リンクは不要です。

解決方法は?

そう、基本的には競合を気にすることなく、DLLをグローバルにアクセスできるようにするための方法なんだ。 もうDLL地獄はありません。 各アーキテクチャやバージョンごとに、独自の場所を確保することができます。

また、エクスプローラで参照する方法も独自に用意されています。

<ブロッククオート

C:\Windowsassembly

Windowsエクスプローラで、すべてのDLLがリストアップされます。

しかし、もしあなたが cmd ということで、実際の構造はどうなっているかがわかります。

C:\Userstritter>cd C:\Windows@assembly

C:\Windowsassembly>dir

 C:\Windowsassembly のディレクトリ

2009年07月20日02時18分 <DIR> GAC
2009年06月17日 04時22分 <DIR> GAC_32
2009年06月17日 04時22分 <DIR> GAC_64
2009年06月17日 04時22分 <DIR> GAC_MSIL
 ...スニップ...
               0 ファイル 0 バイト
               9 Dir(s) 90,538,311,680 bytes free

C:\Windowsassembly>cd GAC_64

C:\Windows/AsssemblyGAC_64>dir

 C:\WindowsassemblySystem.Data>dir
 C:\Windowsassembly ↵System.Data ディレクトリ

2008年01月19日 06:11 AM <DIR> .
2008年01月19日 06:11 AM <DIR> .
2009年11月04日 12時20分 <DIR> 2.0.0.0__b77a5c561934e089
               0 ファイル 0 バイト
               3 Dir(s) 90,538,311,680 bytes free

C:\Windows\assembly\GAC_64\System.Data>cd 2.0.0.0__b77a5c561934e089

C:\Windows\assembly\GAC_64\System.Data\2.0.0.0__b77a5c561934e089>dir

 Directory of C:\Windows\assembly\GAC_64\System.Data\2.0.0.0__b77a5c561934e089

04/11/2009 12:20 PM <DIR> .
04/11/2009 12:20 PM <DIR> .
04/11/2009 12:12 PM 3,008,512 System.Data.dll
               1 ファイル(複数可) 3,008,512 バイト
               2 Dir(s) 90,538,311,680 bytes free

C:\Windows\assembly\GAC_64\System.Data\2.0.0.0__b77a5c561934e089>

System.Data のバージョン 2.0.0.0__b77a5c561934e089 が表示されます。

DLLは5つのパーツで識別されます。

  1. 名称
  2. バージョン
  3. アーキテクチャ
  4. 文化
  5. 公開鍵

最初の3つは一般的に大きなものですが。