2011-06-08 13 views
0

私はLib1にインターフェイスを持っています。私はlib2のusercontolで継承しました。ベースリファレンスが追加されない

私は他のsolutonでそのユーザーコントロールを使用する場合、私は私のLibrary2

The type 'lib1.IColor' is defined in an assembly that is not referenced. You must add a reference to assembly lib1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

//ライブラリ1

public interface IColor 
{ 
string color{get;set;} 
} 

//

public class MyControl:UserControl,IColor 
{ 
public MyControl() 
{ 
InitializeComponent(); 
} 
public string color{get;set;} 
} 

を言ってエラーが出ます問題は、基本ライブラリ(lib1)への参照がlib2を追加するとデフォルトで追加されますか?

+1

他のソリューションでLibrary2を使用している場合は、 IDEは、ライブラリ1をプロジェクトの参照として追加するように指示しますか?ライブラリ2プロジェクトでライブラリ1を使用しているため、論理的に見えます。 –

+0

私の疑問は、IDEは私が手動で追加するのではなく、デフォルトで追加するべきだということでした。 –

+0

なぜでしょうか?参照を追加する依存アセンブリをどのように決定するのですか?どのようにそれがアセンブリの場所を決定するでしょうか?それはGACか任意のフォルダにありますか?バージョン管理はどのように扱いますか? IDEの – MattDavey

答えて

0

異なるアセンブリのタイプを使用している場合は、このアセンブリへの参照を追加する必要があります。また、IColorを返すものを参照している場合は、型がそのアセンブリに含まれているので、lib aへの参照も必要です。

+0

私の疑問は、IDEは私の代わりに手動で追加するのではなく、デフォルトで追加することです –

+3

これを助けることができるが、参照は自動的に追加されないツール(例えばresharper)があります。 – thekip

関連する問題