2009-12-01 121 views
1

我得到了一个名为MyProject.Views的项目,在这个项目中我引用了另一个名为MyProject.Models的项目。Visual Studio 2008 - 引用项目dll

MyProject.Models引用了Mysql.Data.dll。在参考选项中,复制本地设置为true。

我的问题是我必须在项目MyProject.Views中手动添加对MySql.Data.dll的引用。我认为这不是一个好主意。我只想在项目MyProject.Models中添加该dll,因为它是需要该dll的项目...

回答

2

这可能意味着MyProject.Models在其公开接口中公开某些东西inb MySql.Data.dll - 例如,继承自MySql.Data.dll中的某个类的类或MySql.Data.dll中定义的类型的属性。如果你删除了MyProject.Views对MySql.Data.dll的引用,那么你得到的编译器错误应该可以帮助你追踪那些依赖关系是什么:我想它会告诉你MySql.Data中依赖的东西是什么,但是这应该是希望的给你一个模型项目可能取决于那件事的想法。

+0

好的,我认为我有你的想法。但是,我会给你另一个例子。我从ActiveRecordBase(从Castle项目)继承了域类。我需要在View中使用这些类。我该如何处理?我的意思是我想要这些类从ActiveRecordBase继承,但我不想在我的视图项目中添加引用到Castle.ActiveRecord.dll – Melursus

+0

不幸的是,你运气不好。如果你的视图项目必须引用从ActiveRecordBase派生的类,你的视图项目需要引用ActiveRecordBase。唯一的解决方法是不直接引用派生类,例如请通过接口来引用它(例如,使用Models项目中的工厂方法来创建类的实例,但将它们作为接口的实例返回)。 – itowlson

+0

我没有得到的是,如果MySql.Data.dll输出在我的模型项目斌。当我参考我的模型项目时,没有办法在我的视图项目中自动引用它? – Melursus

相关问题