asp.net - 有没有针对Visual Studio 2013的解决方案,不能为ASPX页面正确生成.designer文件?

标签 asp.net visual-studio

我们越来越遇到无法在Web项目中生成设计器文件的Visual Studio错误。在我们的多个ASP.NET项目中,这个问题已经出现了几个月。

该错误在保存文件或构建项目时发生,并且是如下错误的变体:

  • 为[文件名]生成设计器文件失败:错误HRESULT
    E_FAIL已从对COM组件的调用返回。
  • 为[文件名]生成设计器文件失败:未指定
    错误(来自HRESULT的异常:0x80004005(E_FAIL))
  • 为[文件名]生成设计器文件失败:
    相同的键已经存在。
  • 为[文件名]生成设计器文件失败:值不能
    为空。

  • 有时,还会显示其他错误消息,以显示有效的先前运行的代码/标记;错误,例如:
  • 当前上下文中不存在名称“Eval”

  • 这是使用Visual Studio 2013(Premium)以及使用.NET 4.5框架的“Web应用程序项目”类型的项目。其中一些项目最初是在Visual Studio 2010或Visual Studio 2012中创建的,但是其中一个项目是在Visual Studio 2013中创建的新项目。

    我们安装了一些Visual Studio扩展,例如“Web Essentials 2013”​​,但是我尝试禁用所有已安装的Visual Studio扩展,并且仍然出现相同的设计器文件错误。我们没有安装Resharper或CodeRush。我们还将ASP.NET使用第三方组件包(DevExpress)。我们正在将IIS Express用于本地开发Web服务器。

    已为Visual Studio,操作系统(Windows 8.1)、. NET,Visual Studio扩展和DevExpress安装了所有可用的更新(包括Visual Studio 2013的Update 1)。

    我在StackOverflow和Web上搜索了此问题,发现了一些建议,但没有解决方案,而且我还看到该问题已向Microsoft多次报告,可追溯到几年前。

    许多迹象表明,生成设计器文件的问题是由某些无效的语法(在ASPX文件中)引起的,或者是在同一作用域中具有相同ID的多个元素,或者在 namespace 或类名称中存在冲突等。对于此类问题,我会尽力而为,但没有发现任何问题。

    我在Sourceforge上找到了Redesigner项目(非常感谢作者),我尝试使用该项目来验证设计器文件,但不幸的是,它无法处理DevExpress组件(它报告说DevExpress元素在标签对DevExpress有效且正确)。

    我还尝试清除工作站上的Visual Studio开发缓存(即,从文件夹“\ Temp \ IISExpress”,“\ Temp \ Temporary ASP.NET Files”和“\ Microsoft \ WebsiteCache”文件夹中删除所有内容) %localappdata%文件夹,重新启动并重新启动Visual Studio。

    我还找到了一个网站,该网站解释了如何为Visual Studio打开其他日志记录,以帮助跟踪设计器文件生成问题。对于Visual Studio 2013,这需要添加项HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 12.0 \ WebApplicationProjects \ Debug,然后在该项下添加“已启用”(设置为1),“LogFieldGeneratorFailures”(设置为1)和“LogFile”(设置为您有权写入的路径和文件名)。

    当我添加此键时,Visual Studio 2013确实写入了调试日志文件,但它仅包含与以上错误消息类似的错误消息,加上小的堆栈跟踪以及无法使用设计器文件的ASPX文件的全部内容。生成(没有明显迹象表明ASPX页中可能存在错误或语法无效)。

    我想我已经尝试了本主题中所有建议的方法:
    How do you force Visual Studio to regenerate the .designer files for aspx/ascx files?

    这些都不对我有用。我在这些项目的Visual Studio 2013中无法使用ASPX文件的“转换为Web应用程序”选项。

    是否有人针对该Desinger文件问题或任何其他故障排除方法提出任何可能的原因或修复建议?

    最佳答案

    我们发现的与此问题相关的最新消息是,它与Visual Studio中的“源代码控制”选项有关,以“打开解决方案或项目时获取所有内容”。

    到目前为止(过去几天),取消选中此选项似乎已经为我们的团队解决了问题。

    在Microsoft Connect上也发布了此问题:http://connect.microsoft.com/VisualStudio/feedback/details/760443/visual-studio-2012-ide-loses-intellisense-and-reference-resolution

    上面的链接上的注释表明,该错误是由从源代码管理中异步检索文件或在打开Visual Studio时异步加载解决方案引起的。解决该问题的建议选择是关闭异步解决方案负载或禁用“打开所有内容”选项。

    还有建议删除项目目录中的.suo(解决方案用户选项)文件可以解决此问题,但这似乎只是暂时的。

    关于asp.net - 有没有针对Visual Studio 2013的解决方案,不能为ASPX页面正确生成.designer文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22364181/

    相关文章:

    c# - 尝试为文件 <FILE> 附加自动命名的数据库失败。存在同名数据库

    c# - 将空值传递给日期时间? parameter 获取用随机值填充的参数

    visual-studio - Visual Studio 忘记打开了哪些文档

    visual-studio - 如何通过 Visual Studio 2019、2017 和 2015 为 Windows 10 UWP 应用程序创建有效的可信和/或自签名证书

    javascript - 从 Windows 服务访问 Web 应用程序中的 SignalR Hub

    c# - 方法包含在文本列表字符串类型的字典中

    c# - 什么异常(exception)?无效的CastException

    asp.net - 登录控件 : WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping for 'jquery' . 添加名为 jquery 的 ScriptResourceMapping

    c# - 可以从立即窗口调用扩展方法吗

    visual-studio - 使用组织帐户而不是 Microsoft 帐户登录 Visual Studio