Visual Basic .NET または Visual Basic 2005 のグローバル アセンブリ キャッシュにアセンブリをインストールする方法

文書翻訳 文書翻訳
文書番号: 315682 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料では、アセンブリの厳密な名前を生成して、グローバル アセンブリ キャッシュに .dll ファイルをインストールする方法について説明します。グローバル アセンブリ キャッシュ (GAC) を使用すると、アセンブリを多くのアプリケーションで共有できます。GAC は、.NET ランタイムのインストール時に自動的にインストールされます。通常、コンポーネントは C:\WINNT\assembly または C:\WINDOWS\assembly に保存されます。

アセンブリを GAC にインストールするには、アセンブリに厳密な名前 (つまり、グローバルで一意な名前) を指定する必要があります。実際には、これは名前ではなく、暗号化されたハッシュ キー、つまり署名です。厳密な名前を使用すると、コンポーネントのバージョン管理を適切に行うことができます。その結果、同じ名前のコンポーネントで競合が発生したり、アプリケーションで正しくない方のコンポーネントが使用されたりすることを防げます。

必要条件

推奨されるハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、技術や知識、Service Pack は次のとおりです。
  • 共有するアセンブリをインストールする先のコンピュータでの管理者権限
以下の予備知識が必要です。
  • .NET のアセンブリに関する一般的な知識
  • コマンド ライン プロンプトからのツールの使用に関する一般的な知識

グローバル アセンブリ キャッシュ

Visual Studio .NET または Visual Studio 2005 を使用して小さなクラス ライブラリ プロジェクトを作成し、厳密な名前を生成し、グローバル アセンブリ キャッシュにプロジェクトの .dll ファイルをインストールするには、以下の手順を実行します。
  1. Visual Studio .NET または Visual Studio 2005 を起動します。
  2. Visual Basic .NET または Visual Basic 2005 で GAC という名前の新しいクラス ライブラリ プロジェクトを作成します。
  3. 厳密な名前が必要です。この暗号化されたキー ペアを生成するには、SN ツールを使用します。このツールは、.NET Framework Solution Developer Kit (SDK) のインストール先の \Bin サブディレクトリにあります。SN ツールの使用法は簡単です。コマンド ラインで、次の構文を使用します。
    sn -k "C:\DirectoryToPlaceKey\KeyName.snk"
  4. ここでは、C:\ に GACDemo という名前のディレクトリを作成して、コマンド プロンプトからキーを簡単に見つけてアクセスできるようにします。

    : 大部分のユーザー環境では、.NET ツールは C:\Program Files\Microsoft.NET\FrameworkSDK\Bin にあります。次の SN コマンドを入力する前に、コンピュータの .NET bin ディレクトリのパスをコピーし、コマンド ラインで cd と入力し、右クリックしてパスを貼り付け、Enter キーを押すと、SN ツールがあるディレクトリに簡単に移動できます。

    次のように入力します。
    sn -k "C:\GACDemo\GACkey.snk"
    : .NET Framework 2.0 では、.NET のツールは C:\Program Files\Microsoft.NET\SDK\v2.0\Bin フォルダにあります。
  5. キーが生成されますが、このキーはプロジェクトのアセンブリと関連付けられていません。この関連付けを行うには、Visual Studio .NET または Visual Studio 2005 のソリューション エクスプローラで [AssemblyInfo.vb] をダブルクリックします。Visual Studio .NET または Visual Studio 2005 でプロジェクトを作成したときに、このファイルにデフォルトで含まれるアセンブリ属性の一覧に以下のテキストを追加します。
    <Assembly: AssemblyKeyFile("C:\GACDemo\GACKey.snk")>
    Ctrl + Shift + B キーを押してプロジェクトをコンパイルします。.dll ファイルを GAC にインストールするのに、これ以上のコードは不要です。
  6. .dll ファイルをインストールするには Gacutil ツールを使用するか、.dll ファイルを適切なディレクトリにドラッグします。Gacutil ツールを使用する場合は、次のコマンドを使用できます。
    gacutil -I "C:\PathToBinDirectoryInVSProject\gac.dll"
    ファイルをドラッグする場合は、エクスプローラを使用します。エクスプローラのインスタンスを 2 つ起動します。一方では、コンソール プロジェクトの .dll ファイルの出力先に移動します。もう一方では、c:\[SystemRoot]\Assembly に移動します。

    .dll ファイルを Assembly フォルダにドラッグし、ドロップします。

サンプル コード (AssemblyInfo.vb) の完全なリスト

Imports System.Reflection
Imports System.Runtime.InteropServices

<Assembly: AssemblyTitle("")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("")> 
<Assembly: AssemblyProduct("")> 
<Assembly: AssemblyCopyright("")> 
<Assembly: AssemblyTrademark("")> 
<Assembly: CLSCompliant(True)> 
<Assembly: AssemblyKeyFile("C:\GACDemo\GACKey.snk")> 

<Assembly: Guid("E3492A62-5389-4286-94A3-1331CC29EA6D")> 
<Assembly: AssemblyVersion("1.0.*")> 
				

動作の検証

  1. エクスプローラを起動します。
  2. C:\WINNT\assembly または C:\WINDOWS\assembly に移動します。
  3. インストールされている .dll ファイルの一覧に GAC が含まれていることを確認します。

関連情報

詳細については、次のマイクロソフト Web サイトを参照してください。
グローバル アセンブリ キャッシュへのアセンブリのインストール
http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconinstallingassemblyintoglobalassemblycache.asp
グローバル アセンブリ キャッシュ
http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconglobalassemblycache.asp

グローバル アセンブリ キャッシュ ツール
http://www.microsoft.com/japan/msdn/library/ja/cptools/html/cpgrfglobalassemblycacheutilitygacutilexe.asp

プロパティ

文書番号: 315682 - 最終更新日: 2006年11月13日 - リビジョン: 6.3
この資料は以下の製品について記述したものです。
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
キーワード:?
kbvs2005swept kbvs2005applies kbhowtomaster KB315682
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com