有时,当我编辑页面或控件时,.designer文件随着我在页面上添加的新控件而停止更新。我不确定是什么原因导致这种情况发生,但我想知道是否有任何方法强制Visual Studio重新生成.designer文件。我使用Visual Studio 2008

编辑:对不起,我应该注意到我已经试过了:

关闭和重新打开所有文件和Visual Studio 更改页面上的runat="server"控件 删除并重新添加页面指令


当前回答

我以为我有这个问题,是撕裂我的头发,但后来我意识到,我试图引用一个控件从一个静态方法。

使方法非静态为我解决了这个问题。

其他回答

(以下是使用VS2005的经验。)

如果在调试时编辑ASPX页面,则后台代码不会随新类一起更新。因此,您必须停止调试,简单地编辑ASPX页面(如添加按钮或其他内容),然后单击Design View,然后删除按钮。然后,应该更新设计器文件。

如果你在VS2008中有不同的问题,那么我帮不了你。

我知道这是一个老话题,但我只是想补充一个还没有被建议的解决方案。

我在一个资源文件上遇到了同样的问题。我在Visual Studio外编辑它,设计器文件没有正确更新。

重命名文件可以重新生成Designer文件。我只是重新命名为最初的名称,这工作得很好!

如果你在使用Visual Basic 2019时看到这个,并且你点击了“永久删除此文件”确认,你可以从回收站恢复designer.cs文件……它会自动在Visual Basic中重新生成。我就这么做了,找到了我的文件。

还有另一种可能:您的.aspx文件中可能出现错误,不允许Visual Studio重新生成设计器。

如果切换到设计视图,它将显示控件无法呈现。修复控件(在我的例子中,它是属性中的额外引号)并重新编译应该会重新生成设计器。

如果你运行的是Visual Studio 2013或2012,这里的大多数解决方案都不起作用。微软可能引入了一些优化,使IDE更敏捷,因此他们减少了触发代码生成器的情况。以下场景过去已经不再有效:

删除aspx或ascx文件——不再检查这种情况 剪切所有内容并重放到aspx或ascx文件中——不再工作,引用没有改变 转换为Web应用程序-选项不再可用 任意更改aspx/ascx文件的内容—不再工作(见2)。

解决方案出人意料地简单,但有点麻烦。为了触发代码生成器,更改一些需要生成designer.aspx.cs的内容。更改不影响代码的内容(如CSS样式或添加文本)不会触发代码生成器。必须更改引用控件。以下是如何做到这一点:

在ascx或aspx中更改控件的ID

<asp:HyperLink ID="MyLink" runat="server" NavigateUrl="~/Default.aspx" Text="Home" />

to

<asp:HyperLink ID="theLINK" runat="server" NavigateUrl="~/Default.aspx" CssClass="tab" Text="Home" />

转到ascx.cs或aspx.cs,确保将所有对“MyLink”的引用重命名为“theLINK”。保存并建立,你应该很好。