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

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

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


当前回答

在Visual Studio 2019中,步骤如下:

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

其他回答

VS2015…这里有一个VB的例子,从一个网站项目切换到一个Web应用程序项目,为我工作。其他的方法对我都没用,所以我才要分享这个。这并不优雅,但很有效。

步骤0:将项目中的所有“CodeFile=”替换为“CodeBehind=” 步骤1:关闭解决方案。 步骤2:使用以下代码运行一个自制的Windows应用程序(以下步骤)。 第三步:重新打开溶液。 第四步:在解决方案资源管理器中,确保你正在显示所有文件,并搜索designer.vb(或designer.cs为c#) 步骤5:选择所有丢失的文件,并将它们包含在项目中。 步骤6:对于每个文件,查看主页面/控件并保存它。

    private void button1_Click(object sender, EventArgs e)
    {
        ProcessDirectory(new DirectoryInfo(textBox1.Text));
    }

    private void ProcessDirectory(DirectoryInfo directory)
    {
        ProcessMask(directory, ".ascx", ".vb");
        ProcessMask(directory, ".aspx", ".vb");

        foreach (DirectoryInfo directoryInfo in directory.GetDirectories())
            ProcessDirectory(directoryInfo);
    }

    private void ProcessMask(DirectoryInfo directory, string maskStart, string maskEnd)
    {
        FileStream fs;
        foreach (FileInfo file in directory.GetFiles(string.Format("*{0}{1}", maskStart, maskEnd)))
        {
            string designerFileName = file.Name.Replace(string.Format("{0}{1}", maskStart, maskEnd), string.Format("{0}.designer{1}", maskStart, maskEnd));
            if (directory.GetFiles(designerFileName).Length == 0)
            {
                using (fs = File.Create(Path.Combine(directory.FullName, designerFileName)))
                {
                    fs.Close();
                }
            }
        }
    }

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

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

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

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

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

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

在我的案例中,当我向@Page部分添加CodeBehind时,问题得到了解决。

我使用以下方法,每次都有效:

在aspx/ascx文件的编辑器中选择所有前面的代码(html标记等)。 削减。 保存。 粘贴。 保存。

编译。

这就是我的经历, 在解决方案资源管理器中选择网站文件夹,右键单击,为将生成设计器文件的所有aspx文件选择转换为Web应用程序。

萨米尔