继承的Web服务器控件找不到对父程序集的引用?

时间:2012-12-12 19:25:31

标签: c# asp.net

我在Visual Studio 2012 / .NET 4.5中使用ASP.Net,情况如下:

我有一个带有抽象类的程序集,该抽象类继承自名为CDASPControl的WebControl,它包含各种辅助方法,以及从其继承的其他控件。

我有一个名为CDASPGrid的程序集,它继承了上述控件。

当我将CDASPGrid放入我的网页时,它添加了控件就好了,添加了寄存器页面指令没有问题:

<%@ Register Assembly="CDASPGrid, Version=0.0.0.0, Culture=neutral, PublicKeyToken=" Namespace="Controls" TagPrefix="cdc" %>

<cdc:CDASPGrid ID="CDASPGrid1" runat="server" />

当我去编译我的应用程序时,我收到以下错误:

  

type'Controls.CDASPControl'在未引用的程序集中定义。您必须添加对程序集'CDASPControl,Version = 0.0.0.0,Culture = neutral,PublicKeyToken ='的引用。

在引用中,CDASPGrid引用存在,但CDASPControl引用不是。

当我手动将CDASPControl引用添加到网站时(如果这有任何不同,它是一个Web项目),它编译并运行就好了。

是否有网站自动获取额外的参考资料而无需手动添加?

我注意到第三方控件执行此操作,例如DevXPress ASP Gridview控件将根据需要添加对web.config的任何必要引用。有人能够指出我正确的方向,以便我可以学习如何实现这一目标吗?

感谢。

1 个答案:

答案 0 :(得分:0)

所以,事实证明,我必须手动处理这个问题。使用EnvDTE程序集,我能够通过控件设计器在设计时获取项目引用,并将缺少的引用添加到项目引用中。此外,我还可以修改web.config以通过控件设计器将程序集添加到程序集列表中。

不是理想的解决方案,但效果很好。

以下是让我走上正轨的文章: How to register automatically HTTP handler required by a Web server control