2011-06-08 87 views
0

我在Lib1中有一个接口。我已经在lib2中的usercontol中继承了它。未添加基准参考

当我使用其他soluton该用户控件,然后我得到一个错误说

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'.

//在分享帮助

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

//在Library2

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

我问题是为什么对基本库(lib1)的引用没有得到当我添加lib2时默认添加?

+1

您的意思是,当您在其他解决方案中使用Library2时? IDE告诉你也要在项目中添加Library1作为参考?这听起来很符合逻辑,因为您在Library2项目中使用了Library1。 – 2011-06-08 06:15:28

+0

我的疑问是,IDE应该默认添加,而不是手动添加所有这些。 – 2011-06-08 06:23:16

+0

为什么要这样?它将如何决定哪些相关程序集添加引用?它如何确定程序集的位置 - 它是在GAC中还是在某个任意文件夹中?它将如何处理版本控制?您有责任确保您的项目具有正确的参考,而不是IDE的 – MattDavey 2011-06-15 10:17:18

回答

0

如果您使用的是其他装配的类型,则应该添加对此装配的引用。此外,如果你指的是返回IColor的东西,你应该也有一个对liba的引用,因为类型包含在该程序集中。

+0

我的疑问是,IDE应该默认添加,而不是手动添加所有这些 – 2011-06-08 06:49:53

+3

有一些工具(例如resharper)可以帮助您,但不会自动添加引用。 – thekip 2011-06-08 07:11:50