1

我将 ASP.Net 与 Visual Studio 2012/.NET 4.5 一起使用,情况如下:

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

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

当我将 CDASPGrid 放到我的网页中时,它添加了控件就好了,并且添加了注册页面指令没有问题:

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

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

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

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

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

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

有没有办法让网站自动获取额外的参考,而无需手动添加?

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

谢谢。

4

1 回答 1

0

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

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

这是让我走上这条道路的文章: 如何自动注册 Web 服务器控件所需的 HTTP 处理程序

于 2012-12-18T18:48:49.703 回答