【发布时间】:2009-02-03 23:39:59
【问题描述】:
我有一个使用数据层程序集 DAL 的 ASP.NET 页面 A。我使用 <%@ Assembly Name="NGC.DAL" %> 标记引用 DAL 程序集,因为没有要添加引用的项目。我将程序集本身复制到页面的 bin 文件夹中。
程序集 DAL 是一个引用 System 和 System.Data 的项目。
现在当 A 调用 DAL 中的方法时,编译器会报错
BC30652:包含“System.Data.IDbConnection”类型的程序集“System.Data,Version=2.0.0.0,Culture=neutral,PublicKeyToken=969db8053d3322ac,Retargetable=Yes”所需的参考。将一个添加到您的项目中。
我尝试使用<%@Import Namespace="System.Data" %> 标签引用程序集System.Data,并尝试将其复制到bin 文件夹并使用<%@ Assembly Name="System.Data" %> 标签引用它,两者都直接在A 中。没有任何效果。
为什么使用项目 C 的项目 A 需要引用 B 和 C 而不仅仅是 B,为什么上述方法不起作用?
This MSDN 线程涵盖了该问题,但没有显示有效的解决方案。
编辑:正如 Robert Wagner 建议的那样,我添加了对 web.config 的引用。 现在我收到另一条错误消息。 BC30560:“CommandBehavior”在命名空间“System.Data”中不明确。这很奇怪,因为 web.config 中的那个是我在页面内引用的唯一一个。
也许值得一提的是,在 DAL 程序集中引用和使用的 System.Data 来自紧凑框架。但既然它是我唯一使用的,那么歧义从何而来?
【问题讨论】:
标签: asp.net assemblies asp.net-2.0 reference