gpt4 book ai didi

c# - ASP.NET Designer.xx 生成 'already contains a definition for' 控件错误

转载 作者:太空狗 更新时间:2023-10-29 23:46:20 25 4
gpt4 key购买 nike

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

目前,该项目可以正常构建和运行,没有任何问题。但是,我对项目中某些用户控件的前端 .ascx 文件所做的任何更改都会导致相应的 .ascx.designer.cs 生成 ~14 个错误,指出以下错误:

错误 ## 'ControlClass' 类型已经包含 'SomeControlID' 'Location of ControlName.ascx.designer.cs' 的定义

我之前没有对此进行任何我认为会导致此问题的其他更改。它只是随机开始出现在我的项目中。

我尝试了以下方法:

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

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

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

我不确定为什么,但每次这个项目对一些选定的用户控件进行更改时,设计器文件都会突然生成这些错误。

这些用户控件包含复杂的控件,其中包含充满其他控件的模板,等等...但是,在构建这些控件时,我没有遇到名称在不同模板中相同的问题,诸如此类。

通过在线搜索这个问题,我已经没有什么想法了,也没有找到其他可以尝试的方法。

有什么建议吗??

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

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

其次,虽然这将使项目能够毫无问题地构建。它不运行,而是抛出以下运行时错误:

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

此错误向我表明,我为了测试这个而删除的“btnDelete”控件,在构建时被标记为“重复”错误,现在被标记为不正确的类型。

我认为这是由于用户控件上有多个不同类型的“btnDelete”按钮导致了错误。这些按钮包含在用于编辑/删除模板的不同 RadGrid 控件中。

最佳答案

想在我的案例中添加这个错误以及我是如何解决的。

发生在升级到 visual studio 2010 项目的遗留项目中。在我的例子中,必须将 .aspx 文件转换为“Web 应用程序”以生成设计器文件。在这种情况下,不太确定具体发生了什么,但开始出现上述错误。开始查看该变量,但它在代码隐藏 (.cs)、aspx 页面或任何其他相关控件中未被多次定义。

我开始查看 aspx 页面标题,这时我注意到了可能的问题。我有 2 个名称相似的文件...iABC.aspx (.cs,.designer) 和 ABC.aspx(.cs,.designer) 并且在 iABC.aspx header 中,它继承了“ABC”...第一个标志有些不对劲。我将其更改为正确的设置“iABC”,然后决定检查后面代码中的类名,你瞧,iABC.aspx.cs 的类名设置为“ABC 类”而不是“iABC 类” .

一旦我解决了这个问题,一切都很好。

HTH

戴夫

关于c# - ASP.NET Designer.xx 生成 'already contains a definition for' 控件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18520433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com