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

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

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


当前回答

在Visual Studio中:

1)删除你的aspx.designer.cs文件

2)右键单击aspx文件,选择“转换为Web应用程序” 这应该会将aspx.designer.cs添加到最新的版本。

如果你得到一个错误:

"设计器文件生成失败:该方法或操作未实现。"

尝试关闭Visual Studio,然后重新打开项目,再次执行步骤2

如何在visual studio中生成aspx.designer.cs ?

其他回答

多年来,我在Visual Studio 2008中工作时遇到了同样的问题。我在StackOverflow和许多博客上尝试了所有的“解决方案”,我相信你们也都尝试过。有时有效,有时无效,就像我相信你们都遇到过的那样。显然,这在VS2010和VS2012中仍然是一个问题。

最后,几个月前,我决定受够了,在几周的时间里,我构建了一个名为“Redesigner”的工具,它可以生成.designer文件。它在BSD许可下是开源的,源代码可以在SourceForge上获得——可以免费使用,可以免费窃取,可以自由地做任何你喜欢的事情。而且它做了Visual Studio经常做不到的事情,即快速可靠地生成.designer文件。

它是一个独立的命令行工具,可以解析.aspx和.ascx文件,执行所有必要的反射魔法,并输出正确的.designer文件。它自己完成所有解析和反射,以避免依赖现有代码,我们都知道现有代码是坏的。它是在。net 3.5下用c#编写的,但是它甚至要避免使用System。除了类型声明之外,它完全不使用或依赖于Visual Studio。

Redesigner可以生成新的.designer文件;并且它提供了一个——verbose选项,这样当事情出错时,你会得到比“Exception of type System”更好的错误消息。抛出了异常。”还有一个——verify选项,可以用来告诉你什么时候你现有的.designer文件被破坏了——缺少控件,错误的属性声明,Visual Studio无法读取,或者只是简单的borked。

在上个月的大部分时间里,我们一直在我的工作场所使用它来摆脱困境,虽然Redesigner仍然是一个测试版本,但它已经走得足够远了,值得与公众分享它的存在。我打算很快为它创建一个Visual Studio插件,这样你就可以简单地右键单击来验证或重新生成设计器文件,就像你一直希望的那样。但是在此期间,命令行使用非常简单,将为您省去许多令人头痛的事情。

不管怎样,现在就去下载一份Redesigner,别再揪你的头发了。你不会总是需要它,但当你需要它时,你会为拥有它而感到高兴!

https://sourceforge.net/projects/redesigner/

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

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

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

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

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

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

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

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

我找到了一个有效的解决方案,虽然我不太喜欢它。我必须删除.designer.cs文件,然后重新创建一个具有相同名称的空文件。当我返回并再次保存aspx文件时,设计器文件重新生成。

狡猾的!