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

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

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


当前回答

我以为我有这个问题,是撕裂我的头发,但后来我意识到,我试图引用一个控件从一个静态方法。

使方法非静态为我解决了这个问题。

其他回答

TL,博士; 编辑ASPX页面的@Page指令的Inherits属性并点击保存。您的设计器文件应该重新生成。

确保Inherits = <命名空间>。<class_name> and CodeBehind = <class_name>.aspx.cs


我试图在一个Sharepoint 2010项目上做到这一点,使用VS 2010和TFS,上面的解决方案都不适合我。首先,在VS 2010中使用TFS时,. aspx文件的右键菜单中没有“转换为Web应用程序”选项。

这个回答终于起了作用。我的班级是这样的:

namespace MyProjects.Finance.Pages
{
    public partial class FinanceSubmission : WebPartPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        // more code
    }
}

我的@Page指令是(为了清楚起见,这里换行):

<%@ Page Language="C#" AutoEventWireup="true" 
    CodeBehind="FinanceSubmission.aspx.cs"
    Inherits="MyProjects.Finance.Pages.FinanceSubmission"
    MasterPageFile="~masterurl/default.master" %>

我首先将Inherits更改为MyProjects.Finance。Pages,点击保存,然后改回myprojects。finance。Pages。financessubmit,再点击保存。和要人!重新生成设计器页面!

希望这对使用TFS的人有帮助!

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

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

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

如果你在使用Visual Basic 2019时看到这个,并且你点击了“永久删除此文件”确认,你可以从回收站恢复designer.cs文件……它会自动在Visual Basic中重新生成。我就这么做了,找到了我的文件。

我的经验是,如果你想做这篇文章,如上所述。

你的标记文件(aspx/ascx)必须包含CodeBehind="MyPage.aspx.cs"属性,否则它将不起作用。我在这里写过博客。

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

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

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