ASP.NET Designer.xx生成'已包含'控制错误的定义

use*_*281 5 c# asp.net

我目前有一个DotNetNuke模块的项目设置.在这个项目中,我有一些用户控制文件,使用ASP.NET 4.0和C#对TFS进行版本控制.

目前,该项目将建立并运行良好,没有任何问题.但是,我对项目中某些用户控件的前端.ascx文件所做的任何更改都会导致相应的.ascx.designer.cs生成~14个错误,说明以下错误:

错误##类型'ControlClass'已包含'SomeControlID'的定义'ControlName.ascx.designer.cs的位置'

我以前没有对此做过任何其他更改,我认为这会导致这个问题.它只是随机开始在我的项目中发生.

我尝试过以下方法:

  • 删除.ascx.designer.cs =>选择project =>'转换为Web应用程序'以重新生成设计器文件.这总是会导致显示相同的错误.
  • 重置IIS.删除ASP.NET临时文件.手动清理解决方案并重建.这也会重现相同的错误.
  • 从项目中删除用户控件.添加具有相同名称的新用户控件.建立.将代码复制到新控件正面和背面.然后重建.重现相同的错误.

为了使事情变得更奇怪,当我试图确定这是否是某种语法问题时,我做了以下操作并产生了这些结果:

  1. 撤消所有更改并恢复为TFS中的工作版本.
  2. 建立项目.没有错误一切都很好并且构建.
  3. 在前端.ascx文件的末尾添加一个空格.
  4. 建立项目.所有错误再次出现.
  5. 确定无效后,按CTRL + Z以确保它恢复正常.
  6. 重建项目.所有错误再次出现.

我不确定为什么,但每次这个项目改变了一些选择用户控件时,设计器文件会突然产生这些错误.

这些用户控件包含复杂的控件,其中包含充满其他控件的模板等等.但是,在构建这些控件时,我没有问题,在不同的模板和类似的东西中名称是相同的.

我已经没有想法,在网上搜索这个问题没有找到任何其他的尝试.

有什么建议??

编辑: 有人建议我只是手动删除额外生成的控件,以便项目将构建.在深入研究之后,我有两个问题.

首先,这将允许项目构建,但每次更新ASCX时都必须这样做,因为在我删除它们并进行另一次更改后,控制声明又回来了.

其次,虽然这将允许项目无问题地构建.它不会运行,而是抛出以下运行时错误:

基类包括字段'btnDelete',但其类型(System.Web.UI.WebControls.ImageButton)与控件类型(Telerik.Web.UI.RadButton)不兼容.

这个错误告诉我,我删除以测试它的'btnDelete'控件,在构建时标记为'重复'错误现在标记为不正确的类型.

我相信这是因为在用户控件上有多个不同类型的'btnDelete'按钮,这给了我错误.这些按钮包含在其编辑/删除模板的不同RadGrid控件中.

Jon*_*son 0

听起来好像有人试图将控件的重复项添加到设计器文件中。VS 在您进行的每次编辑时都会更新设计器文件,这就是为什么它会在您编辑 aspx 或 ascx 文件时立即发生。您可以做的一件事是,当抛出错误时,打开 Designer.cs 文件并检查 - 我敢打赌您会看到重复的声明。如果是这种情况,则可能是您正在使用的任何库中的一个错误——尽管如果没有更多信息,我无法确定。删除重复项,您应该能够再次构建。为了防止这种情况再次发生,我们需要查看设计器文件中生成的内容。