Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何强制Visual Studio为aspx/ascx文件重新生成.designer文件?_Asp.net_Visual Studio_Visual Studio 2008 - Fatal编程技术网

Asp.net 如何强制Visual Studio为aspx/ascx文件重新生成.designer文件?

Asp.net 如何强制Visual Studio为aspx/ascx文件重新生成.designer文件?,asp.net,visual-studio,visual-studio-2008,Asp.net,Visual Studio,Visual Studio 2008,有时,当我编辑页面或控件时,.designer文件会停止使用我放在页面上的新控件进行更新。我不确定是什么导致了这种情况,但我想知道是否有任何方法可以强制Visual Studio重新生成.designer文件。我正在使用VisualStudio2008 编辑:对不起,我应该注意到我已经尝试过了: 关闭并重新打开所有文件&Visual Studio 对页面上的runat=“server”控件进行更改 删除并重新添加页面指令(&R) 如果打开.aspx文件并在设计视图和html视图之间切换 bac

有时,当我编辑页面或控件时,.designer文件会停止使用我放在页面上的新控件进行更新。我不确定是什么导致了这种情况,但我想知道是否有任何方法可以强制Visual Studio重新生成.designer文件。我正在使用VisualStudio2008

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

  • 关闭并重新打开所有文件&Visual Studio
  • 对页面上的runat=“server”控件进行更改
  • 删除并重新添加页面指令(&R)

如果打开.aspx文件并在设计视图和html视图之间切换 back将提示VS检查控件并将缺少的任何控件添加到 设计器文件

在VS2013-15中,在项目菜单下有一个转换为Web应用程序命令。在VS2013之前,此选项在as(c/p)x文件的右键单击上下文菜单中可用。完成此操作后,您应该看到现在有一个*.Designer.cs文件可用,并且设计HTML中的控件将可用于您的控件

PS:这不应该在调试模式下进行,因为调试时并非所有内容都“重新编译”

有些人还通过(制作.designer.cs文件的备份副本,然后)删除.designer.cs文件来报告成功。重新创建一个同名的空文件

对此答案有许多评论,其中添加了有关如何最好地重新创建designer.cs文件的提示。

(以下内容来自VS2005的经验。)

如果在调试时编辑ASPX页面,则代码隐藏不会使用新类进行更新。因此,您必须停止调试,简单地编辑ASPX页面(如添加按钮或其他内容),然后单击“设计视图”,然后删除按钮。然后,应该更新设计器文件


如果您对VS2008有不同的问题,那么我也无能为力。

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


狡猾

我知道的唯一方法是删除设计器文件,然后转换为web应用程序。但是,当您执行此操作时,它通常会弹出错误,至于为什么它没有首先自动重新生成,它通常是一个未在页面头部声明的控件引用。

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

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

  • 选择设计器文件中的“全部”,删除文件中的所有内容,保留为空,然后保存
  • 在ASPX/ASCX文件中选择“全部”,剪切所有内容,然后重新粘贴
  • 设计器文件应该已重新生成代码

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

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

重新编译。

删除designer.cs文件,然后右键单击.aspx文件并选择“转换为Web应用程序”。如果控件声明存在问题,例如标记格式不正确,则会收到错误消息,并且需要更正格式错误的标记,然后visual studio才能成功重新生成设计器文件


在我的例子中,在这一点上,我发现问题在于我声明了一个按钮控件,它不在带有runat=“server”属性的表单标记中。

我的经验是,如果您想在本文中这样做,就像上面所述


您的标记文件(aspx/ascx)必须包含codebhind=“MyPage.aspx.cs”属性,否则它将无法工作。我在博客上写过这件事。

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

还要记住,控件内部的东西(如中继器)在设计器文件中不可见


是的,在某些情况下,您需要执行上面列出的删除文件魔术-但名称更改解决方案在大多数情况下都会起作用。

以下是我的经验教训, 选择网站文件夹,在解决方案资源管理器中单击鼠标右键,为生成设计器文件的所有aspx文件选择“转换为Web应用程序”


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

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


重新打开解决方案,弄脏标记,保存。已修复。

我有两个问题。。。过时的AJAXControlkit-删除旧dll,从工具箱中删除旧控件,下载新版本,加载工具箱,并在页面上拖放新控件(请参阅)

我的标签控件中也有拼写错误(使用了“class”而不是“cssclass”)


Ta

当您在设计视图中时,右键单击屏幕并点击刷新

我最近发现我也有同样的问题。Visual Studio 2010拒绝更新设计器文件

事实证明,对于使用CodeFile(页面运行)而不是CodeBehind(DLL)的页面,VS不会修改设计器文件。无论您关闭VS、重新加载项目、重新创建控件或修改文件多少次,这都是正确的。没有任何东西会提示VS重新生成设计器。这就好像它没有为代码文件页面创建设计器文件,但需要它在那里

我把它改成CodeBehind并保存了
<%@ Page Language="vb" AutoEventWireup="false" CodeFile="YourPage.aspx.vb" Inherits="YourPageClass" %>
<asp:HyperLink ID="MyLink" runat="server" NavigateUrl="~/Default.aspx" Text="Home" />
<asp:HyperLink ID="theLINK" runat="server" NavigateUrl="~/Default.aspx" CssClass="tab" Text="Home" />
namespace MyProjects.Finance.Pages
{
    public partial class FinanceSubmission : WebPartPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

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