2009-04-10 11 views
3

私のプロジェクトは、別のアセンブリを参照するアセンブリを参照します(Xと呼びます)。参照アセンブリを連鎖する必要があるのはなぜですか?

プロジェクトをコンパイルしようとすると、アセンブリYを参照する必要があります。なぜですか?

型「DevExpress.XtraEditors.XtraForm」が参照されていないアセンブリ に定義されています。私は、アセンブリXが参照されている行に、次のエラーを取得します。 'DevExpress.Utils.v9.1、Version = 9.1.2.0、Culture = neutral、 PublicKeyToken = b88d1754d700e49a'というアセンブリへの参照を追加する必要があります。

DevExpress.XtraEditors.XtraForm

は、アセンブリY.

これはなぜですか?私は前にこの行動を見ていない。

答えて

6

これは常に存在しています。

理由があります。なぜなら、.NETはアセンブリXを使用して確実に取得することができないので、コンパイル時にこれらの値を取得するのはなぜですか。適切なシンボルおよびメタデータ情報。

+0

私はそれがいつもこのようには思っていません。私はこのプロジェクトを.net1.1から.net3.5に移植しました。この問題が現れました。 あなたが言っていることが真実ならば、プロジェクトAではアセンブリBを参照するアセンブリBを参照するアセンブリBを参照し、プロジェクトAはアセンブリB、C、Dを参照する必要があります – AngryHacker

2

これは、コンパイラがすべての依存関係への参照を持たない場合、コンパイラがプロジェクトをどのように構築するのかという点で、常に動作しています。

アプリケーションが動作するには、プロジェクトによって参照されるアセンブリが必要です。これらのアセンブリの型を使用していて、アプリケーションで構築できない型はありません。さらに重要なことに、これらのタイプがなければ、アプリケーションは実行できません。

ここでは、参照するすべてのアセンブリがアセンブリと同じ方法で作成され、すべて参照アセンブリが存在し、説明されている必要があると考えてください。これは煩わしいことがある連鎖反応を作り出しますが、最終的にアプリケーションを実行すると、アプリケーションを実行するために必要なすべてのアセンブリがCLRに含まれます。

関連する問題