有时,当我编辑页面或控件时,.designer文件随着我在页面上添加的新控件而停止更新。我不确定是什么原因导致这种情况发生,但我想知道是否有任何方法强制Visual Studio重新生成.designer文件。我使用Visual Studio 2008
编辑:对不起,我应该注意到我已经试过了:
关闭和重新打开所有文件和Visual Studio 更改页面上的runat="server"控件 删除并重新添加页面指令
有时,当我编辑页面或控件时,.designer文件随着我在页面上添加的新控件而停止更新。我不确定是什么原因导致这种情况发生,但我想知道是否有任何方法强制Visual Studio重新生成.designer文件。我使用Visual Studio 2008
编辑:对不起,我应该注意到我已经试过了:
关闭和重新打开所有文件和Visual Studio 更改页面上的runat="server"控件 删除并重新添加页面指令
当前回答
除了所有已经给出的好答案,我想补充@johan-leino的好答案。在我的例子中,由于某种任意原因,CodeBehind属性从@Page指令/中被省略了。aspx文件。同样,检查CodeFile属性是否有@Control指令/也是值得的。ascx文件(显然在这两种情况下都与Inherits属性结合使用)。
根据“强制”重新生成.designer.cs所需的确切场景和原因,还可以在(快速)保存(无论是否有任何更改)之前尝试格式化文档(可能指示解析错误),并检查错误列表中的警告。
其他回答
我已经找到了一种方法来解决这个问题,不需要更改任何代码或运行命令,如“转换为Web应用程序”-而且它也很简单!
我发现重新启动Visual Studio通常可以解决问题,但有时不能。在这些情况下,如果你关闭Visual Studio,然后在再次打开之前删除web项目“obj”目录中的所有内容,这对我来说总是有效的。
(当再次启动时,你只需要添加一个空格,然后再次删除它,然后点击保存,让设计器文件正确地重新生成)
在Visual Studio中:
1)删除你的aspx.designer.cs文件
2)右键单击aspx文件,选择“转换为Web应用程序” 这应该会将aspx.designer.cs添加到最新的版本。
如果你得到一个错误:
"设计器文件生成失败:该方法或操作未实现。"
尝试关闭Visual Studio,然后重新打开项目,再次执行步骤2
如何在visual studio中生成aspx.designer.cs ?
这就是我的经历, 在解决方案资源管理器中选择网站文件夹,右键单击,为将生成设计器文件的所有aspx文件选择转换为Web应用程序。
萨米尔
如果更新名称空间而不更新设计器文件中的名称空间,也会发生这种情况。修复:更新设计器文件中的命名空间。
我经常发现复制/粘贴会导致这种行为。大多数情况下可以通过编辑服务器控件的ID来解决(只需添加一个字符,然后删除它)。
还要记住,在设计器文件中,像重复器这样的控件是不可见的。
是的,在某些情况下,您需要执行上面列出的删除文件的魔法—但是更改名称解决方案在大多数情况下都是有效的。