有时,当我编辑页面或控件时,.designer文件随着我在页面上添加的新控件而停止更新。我不确定是什么原因导致这种情况发生,但我想知道是否有任何方法强制Visual Studio重新生成.designer文件。我使用Visual Studio 2008
编辑:对不起,我应该注意到我已经试过了:
关闭和重新打开所有文件和Visual Studio 更改页面上的runat="server"控件 删除并重新添加页面指令
有时,当我编辑页面或控件时,.designer文件随着我在页面上添加的新控件而停止更新。我不确定是什么原因导致这种情况发生,但我想知道是否有任何方法强制Visual Studio重新生成.designer文件。我使用Visual Studio 2008
编辑:对不起,我应该注意到我已经试过了:
关闭和重新打开所有文件和Visual Studio 更改页面上的runat="server"控件 删除并重新添加页面指令
当前回答
我已经找到了一种方法来解决这个问题,不需要更改任何代码或运行命令,如“转换为Web应用程序”-而且它也很简单!
我发现重新启动Visual Studio通常可以解决问题,但有时不能。在这些情况下,如果你关闭Visual Studio,然后在再次打开之前删除web项目“obj”目录中的所有内容,这对我来说总是有效的。
(当再次启动时,你只需要添加一个空格,然后再次删除它,然后点击保存,让设计器文件正确地重新生成)
其他回答
我经常发现复制/粘贴会导致这种行为。大多数情况下可以通过编辑服务器控件的ID来解决(只需添加一个字符,然后删除它)。
还要记住,在设计器文件中,像重复器这样的控件是不可见的。
是的,在某些情况下,您需要执行上面列出的删除文件的魔法—但是更改名称解决方案在大多数情况下都是有效的。
我知道的唯一方法是删除设计器文件,并将其转换为web应用程序。然而,当你这样做时,它通常会弹出错误,至于为什么它没有自动再生在第一个地方,它通常是一个控制引用,没有在页面头部声明。
我找到了一个有效的解决方案,虽然我不太喜欢它。我必须删除.designer.cs文件,然后重新创建一个具有相同名称的空文件。当我返回并再次保存aspx文件时,设计器文件重新生成。
狡猾的!
对我来说有效的解决方案是:
我只是复制页面,并将其粘贴在相同的部分,然后重命名第一页(任何名称),并将复制的页面重命名为原始页面。现在可以访问控件了。
(以下是使用VS2005的经验。)
如果在调试时编辑ASPX页面,则后台代码不会随新类一起更新。因此,您必须停止调试,简单地编辑ASPX页面(如添加按钮或其他内容),然后单击Design View,然后删除按钮。然后,应该更新设计器文件。
如果你在VS2008中有不同的问题,那么我帮不了你。