Gle*_*ven 388 asp.net visual-studio-2008 visual-studio
有时当我正在编辑页面或控制时,.designer文件停止使用我正在页面上放置的新控件进行更新.我不确定是什么导致这种情况发生,但我想知道是否有任何方法迫使Visual Studio重新生成.designer文件.我正在使用Visual Studio 2008
编辑:对不起,我应该注意到我已经尝试过:
Esp*_*spo 364
如果打开.aspx文件并在设计视图和html视图之间切换,则会提示VS检查控件并将任何缺少的内容添加到设计器文件中.
在VS2013-15中," 项目"菜单下有" 转换为Web应用程序"命令.在VS2013之前,此选项在右侧单击上下文菜单中可用作(c/p)x文件.完成后,您应该会看到现在有一个*.Designer.cs文件,并且您可以使用Design HTML中的控件进行控制.
PS:这不应该在调试模式下完成,因为在调试时不会"重新编译"所有内容.
有些人还通过删除.designer.cs文件然后重新创建一个具有相同名称的空文件来报告成功.
Gle*_*ven 92
好吧,我找到了一个有效的解决方案,但我并不喜欢它.我不得不删除.designer.cs文件,然后重新创建一个具有相同名称的空文件.当我重新进入并再次保存aspx文件时,重新生成了设计器文件.
狡猾的!
Ruv*_*ndo 79
我使用以下每次都有效的方法:
重新编译.
Geo*_*off 62
我最近看到我遇到了同样的问题.Visual Studio 2010拒绝更新设计器文件.
事实证明,VS不会修改使用CodeFile(运行页面)而不是CodeBehind(DLL)的页面的设计器文件.无论您关闭VS多少次,重新加载项目,重新创建控件或修改文件,都是如此.什么都不会促使VS重新设计设计师.就好像它没有为CodeFile页面创建设计器文件,但确实需要它在那里.
我将其更改为CodeBehind并保存页面.设计器文件立即更新.然后我就把它改回来了,一切都还是金色的.这种行为似乎是VS 2010/.NET 4.0的新特性,因为VS 2008默认情况下不会受此影响.
这是这部分:
<%@ Page Language="vb" AutoEventWireup="false" CodeFile="YourPage.aspx.vb" Inherits="YourPageClass" %>
Run Code Online (Sandbox Code Playgroud)
将CodeFile更改为CodeBehind,保存,然后还原.
y0m*_*mbo 37
还有另一种可能性:.aspx文件中可能存在错误,该错误不允许Visual Studio重新生成设计器.
如果切换到"设计视图",则会将控件显示为无法呈现.修复控件(在我的情况下,它是属性中的额外引用)并重新编译应重新生成设计器.
ATL*_*DEV 21
如果您运行的是Visual Studio 2013,可能还有2012年,那么大多数解决方案都不起作用.Microsoft可能会引入一些优化来使IDE变得更加快速,因此它们减少了触发代码生成器的案例数量.过去工作的以下方案不再适用:
解决方案非常简单,但有点麻烦.为了触发代码生成器,请更改需要生成designer.aspx.cs的内容.更改不影响代码的内容(例如CSS样式或添加文本)将不会触发代码生成器.您必须更改引用的控件.这是怎么做的:
在ascx或aspx中更改控件的ID
<asp:HyperLink ID="MyLink" runat="server" NavigateUrl="~/Default.aspx" Text="Home" />
Run Code Online (Sandbox Code Playgroud)
至
<asp:HyperLink ID="theLINK" runat="server" NavigateUrl="~/Default.aspx" CssClass="tab" Text="Home" />
Run Code Online (Sandbox Code Playgroud)
转到ascx.cs或aspx.cs并确保将所有对"MyLink"的引用重命名为"theLINK".保存并做好构建,你应该好好去.
小智 9
转换为Web应用程序对我不起作用.
删除designer.cs并粘贴一个空白的designer.cs也不起作用.
但是这是有效的:
完成.生成了新的designer.cs.:)
我经常发现复制/粘贴给我带来了这种行为.大多数情况可以通过编辑服务器控件的ID来解决(只需添加一个字符,然后删除它).
还要记住,在设计器文件中看不到像Repeater这样的内容.
是的,有些情况下您需要执行上面列出的删除文件魔法 - 但名称更改解决方案大部分时间都可以使用.
(以下内容来自VS2005的经验。)
如果您在调试时编辑 ASPX 页面,则隐藏代码不会使用新类进行更新。因此,您必须停止调试,简单地编辑 ASPX 页面(例如添加按钮或其他内容),然后单击“设计视图”,然后删除该按钮。然后,您的设计器文件应该更新。
如果您在使用 VS2008 时遇到其他问题,那么我无能为力。
小智 5
我找到了一种解决这个问题的方法,无需更改任何代码或运行"转换为Web应用程序"等命令 - 而且它也很简单!
我发现重新启动Visual Studio通常可以解决问题,但有时却没有.在这些情况下,如果您关闭Visual Studio,然后在再次打开它之前删除Web项目的"obj"目录中的所有内容,它始终对我有用.
(再次启动时,只需添加一个空格并再次将其删除,然后单击"保存"以正确重新生成设计器文件)
| 归档时间: |
|
| 查看次数: |
301476 次 |
| 最近记录: |