2009-05-02 8 views

答えて

10

私は実際には、この記事を見つけました。

をあなたは、あなたがアセンブリのきれいにフォーマット一覧が表示されますエクスプローラ、と

c:\windows\assembly

に移動した場合、それらを確認することができます:それは説明し、本当に良いことです。
このビューを担当するシェルエクステンションは、GAC内のアセンブリだけでなく、ngen.exeで事前コンパイルされたアセンブリのネイティブバージョンも表示します。
しかし、ファイルは実際にはここには格納されません。シェル拡張は実際の場所を隠すだけです。コマンドプロンプトを使用して同じディレクトリに移動すると、ファイルが実際に格納されている場所を確認できます。
この場所には、GACという名前のサブディレクトリを含むいくつかのサブディレクトリがあります。いくつかのレイヤーのハッシュコードとアセンブリ名の下に埋め込まれているのは、物理的なアセンブリと、他のものの中でも強い名前を含む昔ながらの.INIファイルです。この未知の領域では、GACが不透明になることを意図して変更を加えることに注意していますが、カバーしていることを理解するだけの価値があります。

2

GACの物理的な場所は、%WINDIR%、f.eの下にあるAssemblyディレクトリです。

c:\windows\assembly 

アセンブリをgacにエクスプローラまたはgacutilプログラムでコピーできます。

3

彼らは

% SYSTEMROOT%変数は、Microsoft Windows NTおよびその誘導体で見つかった特別なシステム全体の環境変数であるアセンブリという名前のフォルダ内の%SystemRoot%に格納されています。その値は、ドライブとパスを含むシステムフォルダの場所です。

ドライブは%SystemDrive%と同じで、クリーンインストールでのデフォルトパスはオペレーティングシステムのバージョンによって異なります。デフォルトでは、クリーンインストールに:私は私の質問を書いた後

* Windows NT 5.1 (Windows XP) and newer versions use \WINDOWS 
* Windows NT 5.0 (Windows 2000), Windows NT 4.0 and Windows NT 3.1 use \WINNT 
* Windows NT 3.5x uses \WINNT35 

(ウィキペディアより)

1

いいえ、物理的なアセンブリは "C:\ Windows \ assembly"には格納されません。 アセンブリへの参照のみがそこに格納されます。 アセンブリの "System.Windows.Forms.dll" (およびほとんどの.NET Frameworkアセンブリ) は、多くのエディションで "C:\ Windows \ winsxs"に物理的に格納され、多くのプラットフォーム用に最適化されています エクスプローラの "C:\ Windows \ winsxs"に移動し、検索ボックスに "System.Windows.Forms.dll"と入力してください)。たとえば、 という名前のアセンブリを作成してGACに登録することもできますが、物理的な場所はアセンブリファイルを配置する場所です。 (たとえば、 "C:¥Users¥%username%¥Documents¥Visual Studio 2008¥Projects¥YourAssemblyProjectName¥YourAssemblyProjectName¥bin¥Debug" - VSはデフォルトディレクトリをプロジェクトします)。 以上、GACではアセンブリへの参照のみが格納されているため、GACに登録されているアセンブリを再構築すると、そのアセンブリをGACから参照してアセンブリを使用しているアセンブリもアセンブリの再構築されたバージョンを使用します。

関連する問題