ASP.NET用户控件编译为DLL

时间:2012-02-04 23:33:08

标签: c# asp.net user-controls web-deployment-project

我在VS2010中有一个标准的网站项目和一个Web部署项目。我已经使用这个项目和部署包大约4年了,现在没有问题。

部署包已设置为“将所有页面和控件输出合并到单个程序集”。

到目前为止,这个设置没有问题3到4年了! 在最新版本的网站中,我添加了一个包含一些页面的文件夹和另一个包含3个用户控件的文件夹。现在,当我构建部署包时,3个用户控件中的2个编译成自己的dll,其余的按预期编译。我已经在所有三个控件的页面后面的代码中检查了命名空间,它们都是相同的,并且找不到告诉编译器编译这两个控件而不是其他控件的任何地方?

我的控件位于Namespace G2F.Forms.Controls.FormDefintitionListItemControl(它反映了文件夹结构和控件名称)。

我有一个页面需要引用其中一个控件和用途:

.FindControl(“IdName”)为MyControl

代码在使用网站或运行项目时都能正常工作,但在编译网站时,上面的代码返回null,因为控件现在是ASP.forms_controls_formdefinitionlistitemcontrol_ascx类型。

这个和另外一个控件是唯一以这种方式编译的控件,解决方案中大约有40-50个其他控件。

1 个答案:

答案 0 :(得分:2)

根据我的上一篇评论,我发现了一个解决方案,将网站转换为Web应用程序,在执行此操作时有很多问题,但最终经过大量的排序命名空间和一些公平的编译后才能获得正确的部署设置(设置检查“允许更新这个预先通过的网站!”我完成了它。

看起来有点极端但是已经失去了4天追逐错误并重建它很高兴能够再次使用它!