3

混乱している

一度だけ

VS追加参照(/ netタブ)は、dllのgacがここにあることを示しています: ここに画像の説明を入力してください

そして私はGACを含むこのフォルダを見つけました:(psなぜ3つのGacのタイプ?) ここに画像の説明を入力してください

また、GACを含むこのフォルダ:

ここに画像の説明を入力してください

誰かが私の頭痛を直してくれませんか?

4

3 に答える 3

3

.NET 4をインストールした後、システムには実際には2つのGACがあります。1つは.NETバージョン2-3.5用で、もう1つはバージョン4用です。これについてはすでにここで説明しています。これらの各ディレクトリには、x86、x64、およびMSILのコードを含むアセンブリイメージを含むいくつかのサブフォルダーがあります。

プログラムファイル内の「参照アセンブリ」ディレクトリはGACではありません。

Alex Dnのコメントにも答えるには、GACにDLLをインストールした後、DLLがどこに移動するかを気にする必要はありません。目的gacutilは、この知識をあなたから隠すことです。これにより、.NETは、作業の仕組みを部分的に「リバースエンジニアリング」し、アプリケーション内のパスをハードコーディングする人々から依存関係を取得するというおなじみの方法になりません。

于 2012-04-24T13:55:51.793 に答える
3

%ProgramFiles%\Reference Assemblies\Microsoft\Framework\v4.0"フォルダには、新しいコンポーネントの設計およびビルド中に参照するのに役立つ.NetFrameworkに付属するアセンブリが含まれています。http://blogs.msdn.com/b/msbuild/archive/2007/04/12/new-reference-assemblies-location.aspxを参照してください。これはまったくGACではありません。

2つの異なるGACがあります。1つはCLR2.0用で、もう1つはCLR4.0用です。1つ%windir%\assemblyはCLR2.0(.Net 2.0から3.5)%windir%\Microsoft.NET\assemblyで使用され、2.0より大きいCLR(現在は4.0のみ)で使用されます。

于 2012-04-24T13:55:36.770 に答える
0

歴史的な理由から、2つの道のりにあると思います。

プラットフォームごとにアセンブリを分割している必要があります(MSIL、Native 32、Native 64、Embedded、ARMなど)。

したがって、プロセスのコンパイル方法に応じて、1つまたは別の部門をリンクします。したがって、ポータブル.net(MSILのみ)とマネージC ++(ネイティブのみ)の間で...

しかし、私はまったくわかりません:)

于 2012-04-24T13:47:07.147 に答える