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

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

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


当前回答

最近我发现我也有同样的问题。Visual Studio 2010拒绝更新设计器文件。

事实证明,VS不会为使用CodeFile(页面运行)而不是CodeBehind (DLL)的页面修改设计器文件。无论你关闭VS、重新加载项目、重新创建控件或修改文件多少次,这都是正确的。没有什么会提示VS重新生成设计器。这就好像它没有为CodeFile页面创建设计器文件,但确实要求它存在。

我把它改成了CodeBehind并保存了页面。设计器文件立即更新。然后我把它改回来,一切都还是金色的。这种行为在VS 2010 / . net 4.0中似乎是新的,因为VS 2008在默认情况下没有出现这种情况。

就是这一部分:

<%@ Page Language="vb" AutoEventWireup="false" CodeFile="YourPage.aspx.vb" Inherits="YourPageClass" %>

将CodeFile更改为CodeBehind,保存,然后恢复。

其他回答

用无效的标记名称替换自定义标记。保存它 将无效的标记名称恢复为自定义标记名称。保存它。然后系统会提示您签出*.designer.cs文件(或静默地修改designer.cs)并生成自定义标记控件的正确变量。

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

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

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

在Visual Studio 2019中,步骤如下:

创建webform1.aspx 复制你的aspx代码并粘贴到webform1.aspx 编译你的项目,你应该在webform1.aspx.designer.cs中有设计器代码 现在你可以复制设计器代码并在你的原始web表单中使用。

对我来说有效的解决方案是:

我只是复制页面,并将其粘贴在相同的部分,然后重命名第一页(任何名称),并将复制的页面重命名为原始页面。现在可以访问控件了。

如果您像我一样,将旧的. aspx文件添加到最近的项目中。 您可能会忘记页面上使用的一些控件。

如果是这样,首先,如果你安装了多个文件; 一次只修复一个。

编译时,修复生成的错误。它们可能是一样的 所有文件中的错误。

接下来,如果您有设计器文件,请删除所有插入的设计器文件。 接下来,确保在编译时没有任何其他错误,除了 设计器文件。

最后右键单击您的web项目,然后单击“转换为web应用程序”。 这将插入您需要的设计器文件。

这些绝对是解决问题的最佳步骤。