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

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

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


当前回答

这是IDE中的一个bug;我从2003年就开始看了。解决方法很简单。

保存文件。完全退出IDE(确保进程停止,任务经理)

重新打开解决方案,修改标记,保存。固定的。

其他回答

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

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

这是IDE中的一个bug;我从2003年就开始看了。解决方法很简单。

保存文件。完全退出IDE(确保进程停止,任务经理)

重新打开解决方案,修改标记,保存。固定的。

对我来说,解决方案是将None更改为.csproj文件中的Compile

<Compile Include="Logout.aspx.designer.cs">
      <DependentUpon>Logout.aspx</DependentUpon>
</Compile>

除了所有已经给出的好答案,我想补充@johan-leino的好答案。在我的例子中,由于某种任意原因,CodeBehind属性从@Page指令/中被省略了。aspx文件。同样,检查CodeFile属性是否有@Control指令/也是值得的。ascx文件(显然在这两种情况下都与Inherits属性结合使用)。

根据“强制”重新生成.designer.cs所需的确切场景和原因,还可以在(快速)保存(无论是否有任何更改)之前尝试格式化文档(可能指示解析错误),并检查错误列表中的警告。

我经常发现复制/粘贴会导致这种行为。大多数情况下可以通过编辑服务器控件的ID来解决(只需添加一个字符,然后删除它)。

还要记住,在设计器文件中,像重复器这样的控件是不可见的。

是的,在某些情况下,您需要执行上面列出的删除文件的魔法—但是更改名称解决方案在大多数情况下都是有效的。