質問

.NET アセンブリが物理的にどこにあるかについて少し混乱しています。古き良き時代を迎えてください リンク. 。私の中で web.config ファイルには次のように書かれています:

<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

これは LINQ へのリファレンスです。しかし、これが指す DLL は正確にはどこにあるのでしょうか?上記にはパスがなく、bin フォルダーにもありません。

サードパーティのアセンブリ参照と思われるものもあります。

<add assembly="MapInfo.CoreTypes, Version=4.0.0.483, Culture=neutral, PublicKeyToken=F548BCBA69D4B8DA" />

これがマシン上のどこにあるかを確認するにはどうすればよいですか。 bin フォルダ?

また、DLL ファイルが bin ディレクトリ内で参照する必要はないと考えてよいでしょうか? web.config?

役に立ちましたか?

解決

サードパーティのアセンブリは GAC を参照してくださいMSDNの記事ではないかもしれません。どのようにランタイムがアセンブリを検索する の一連のルールについて。または、SysInternalsのを試してみてください FILEMONするます。

他のヒント

私は、彼らが%WINDIR%\Assemblyに位置しています GAC の、に位置していると思います。詳細については、神秘を解く.NETグローバルでありますアセンブリキャッシュする の(コードプロジェクトの時)。

アセンブリとフュージョンのパス調査は非常に複雑です。通常、.NET は次の 2 つの場所のいずれかからアセンブリを解決します。

  1. 現在のディレクトリ、bin サブディレクトリ、または Fusion アセンブリ バインディング ロジックで指定されたその他の場所などのローカル ディレクトリで検索されます。

  2. これはグローバル GAC ストアで検索され、アセンブリを登録し、名前、バージョン、およびその他のいくつかの属性で検索できます。

ASP.NETを使用している場合、「bin」ディレクトリに関する特定の質問に対処するには(への参照から推測します) web.config) の場合、はい、パスを含める必要はありません。.NET が 'bin' ディレクトリでアセンブリを検索するために必要なことはすべて、ASP.NET が処理します。

.NETアセンブリの一部はネットのインストールフォルダに配置されています。

この

として
  

C:\プログラムファイル(x86の)\リファレンス   マイクロソフト\ Framework.NETFramework \ v4.0の\アセンブリ

インサイド座っアセンブリがあります。 .NETFramework 1つ上のレベルでは、.NETの異なるバージョンとそれらに対応するアセンブリを見つけるだろう。

短い答えは:それは、物事の多くに依存します。フレームワークは、そのルールは、それがアセンブリをロードする方法についてはを持っています。ただし、さまざまな設定ファイル(machine.configに、など)を使用して、これを無効にすることができます。あなたのアセンブリは、実際に特定のシステムに住んでいる場所を見つけるために、議会はログインをバインドビューアに。 (プラットフォームSDKのそれの一部。ただ、SDKコマンドシェルを開き、Fuslogvw.exeではを実行します。)

アセンブリは主に次のいずれかの場所にあります。

  • GAC -C: Windows Assembly gac(Microsoftが提供し、場合によってはサードパーティによって)
  • インストールフォルダー(サードパーティのコントロールのほとんど)

プロジェクト参照内のアセンブリを右クリックし、 プロパティ.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top