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

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

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


当前回答

如果你使用的是VS2013或更高版本,确保代码引用的属性是“CodeBehind”而不是“CodeFile”,然后执行以下步骤

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="yourControl.ascx.cs" Inherits="yourControl.yourControl" %>

创建空的设计器页面(或清除它,如果它已经存在" yourcontrol . ascxx .designer.cs") 在ascx(或aspx)复制所有代码后,将其删除,然后保存。重新通过它,然后保存。 现在应该填充设计器文件了。

其他回答

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

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

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

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

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

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

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

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

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

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

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

我有两个问题……过时的AJAXControlkit -删除旧的dll,从工具箱中删除旧的控件,下载新版本,加载工具箱,并在页面上拖放新控件(参见http://www.experts-exchange.com/Programming/Languages/.NET/Visual_Studio_.NET_2005/Q_24591597.html)

也有拼写错误在我的标签控制(已使用'类'而不是'cssclass')。

Ta