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

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

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


当前回答

没有人提到的一件事是访问页面。我让我的设计器文件停止重新生成,因为我包含了一个不存在的用户控件(由于各种原因),这里建议的方法都不起作用。不管出于什么原因,我在Visual Studio中没有得到任何错误——除了一个抱怨我的客户端控件不存在的事实,因为它们没有被重新生成,当然。

需要实际访问页面才能获得ASP。请您告诉我错误。

其他回答

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();
                }
            }
        }
    }

我以前遇到过这个问题。我通常只是按回车键添加一行,然后等待加减号显示在html页面上,设计师应该添加你需要的东西。我还不得不关闭项目并重新打开它以使其工作。

我已经找到了一种方法来解决这个问题,不需要更改任何代码或运行命令,如“转换为Web应用程序”-而且它也很简单!

我发现重新启动Visual Studio通常可以解决问题,但有时不能。在这些情况下,如果你关闭Visual Studio,然后在再次打开之前删除web项目“obj”目录中的所有内容,这对我来说总是有效的。

(当再次启动时,你只需要添加一个空格,然后再次删除它,然后点击保存,让设计器文件正确地重新生成)

转换为Web应用程序不为我工作。

删除designer.cs并粘贴空白的designer.cs也不能工作。

但这确实奏效了:

选择所有(default . aspx) 减少 保存即 粘贴 保存即

完成了。生成新的designer.cs。:)

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