C# ASP.NET用户控件编译为DLL

C# ASP.NET用户控件编译为DLL,c#,asp.net,user-controls,web-deployment-project,C#,Asp.net,User Controls,Web Deployment Project,我在VS2010中有一个标准网站项目和一个web部署项目。我已经使用这个项目和部署包大约4年了,现在没有任何问题 部署包已设置为“将所有页面和控制输出合并到单个程序集” 直到现在,3-4年都没有出现过这种设置问题! 在网站的最新版本中,我添加了一个包含一些页面的文件夹和另一个包含3个用户控件的文件夹。现在,当我将3个用户控件中的部署包2编译成它们自己的dll时,其余控件将按预期编译。我已经检查了所有三个控件的代码隐藏页中的名称空间,它们都是相同的,找不到任何地方可以告诉编译器编译这两个控件而不是

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

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

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

我的控件位于名称空间G2F.Forms.Controls.FormDefinitionListItemControl(反映文件夹结构和控件名称)中

我有一个页面需要获取这些控件之一的引用和使用:

.FindControl(“IdName”)作为MyControl

这些代码在使用网站或运行项目时都可以正常工作,但在编译网站时,上面的代码返回null,因为控件现在的类型是ASP.forms\U controls\U formdefinitionlistitemcontrol\U ascx


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

根据我最后的评论,我通过将网站转换为web应用程序找到了一个解决方案,在执行此操作时会遇到大量的问题,但最终在对名称空间进行了大量排序并进行了相当多的编译以获得正确的部署设置(选中“允许此预编译的站点更新”)之后,我让它工作了


这似乎有点极端,但在花了4天时间追踪错误并重新构建之后,能够让它再次工作真是太好了

检查程序集名称,而不是命名空间名称。我应该检查哪些程序集名称?它是一个网站(不是应用程序),控件只是放在网站的文件夹中,是web部署项目将这两个控件合并到这些应用程序中??非常奇怪的行为所有其他控件都内置到G2F.Collective.WebUI dll中,如web部署设置所述?是否“允许此预编译网站可更新”未选中?是否允许此预编译网站更新?已选中并未选中,我已将所有部署设置搞乱,但没有任何效果。我现在已经将它从一个网站移动到了一个web应用程序,经过2天的squshing bug之后,我遇到了同样的问题,然后我更新了两个依赖的web部署包,在构建之前删除了它们的obj和发布文件夹,并且它可以工作,尝试在web站点部署包上重新运行它,但问题仍然存在。