【发布时间】:2020-05-19 17:34:41
【问题描述】:
我在使用包含大量项目的 Winforms 应用程序时遇到了一个主要问题。 VS 2019 抛出异常并在几天前关闭,然后重新打开恢复了两个文件,此后我一直无法:
- 为绝大多数项目添加新表单,无论是否是最基本的 MS 模板
- 为绝大多数项目中已经存在的任何形式打开设计器
- 访问绝大多数项目中引用 WinForms 的任何类的导航栏(VS 工作区顶部的三个组合框,通常包含项目、命名空间和内容信息)
当尝试执行前两件事中的任何一项时,会无休止地显示“正在打开文件”消息。如果您尝试执行任何操作,则会显示 Visual Studio 正忙的通知,并且会通知 Microsoft,但不会发生其他任何事情,您只能通过使用任务管理器杀死所有 VS 任务来退出。
在第三个的情况下,会显示一条消息,说“正在刷新导航栏”,但它又会永远持续下去。但是,在这种情况下,您可以单击“取消”按钮来取消加载尝试。
我认为导航栏问题与 Resharper 相关。另外CodeLens根本不工作,所以生成了引用数的空间但是没有内容。这适用于解决方案中的所有文件,而不仅仅是与表单相关的文件。
这是我迄今为止尝试过的:
- 清理并重建解决方案 - 工作正常,但没有区别
- 构建并部署了解决方案 - 运行良好
- 删除SUO文件并重置
- 清除了 Resharper 缓存
- 已禁用 Resharper
- 执行了 Visual Studio 的修复安装
- 创建了一个新的解决方案并添加了表单等,但未受影响且工作正常
- 打开了另一个也可以正常工作的解决方案
- 在不属于应用程序 (TestBed) 的同一解决方案中尝试了与项目相同的流程,该解决方案也可以正常工作,但它是唯一可以这样做的项目
谁能建议现在去哪里看?由于新的和现有的解决方案除了这个之外都可以正常工作,我假设它是与解决方案相关的东西,而不是与 VS 本身相关的东西,但我不知道那可能是什么。例如,当它说“打开文件”时它试图做什么(除了显而易见的 - 打开一个文件:-))以及什么可能导致它失败?我是在寻找解决方案文件中的内容,还是其他内容?
对于解决此问题的所有建议和帮助,我们将不胜感激。
【问题讨论】:
-
三个介绍性要点中的“绝大多数”是什么意思?您是说同一解决方案中的某些项目存在项目符号中引用的问题,而其他项目则没有?另外,当 IDE 自行关闭后重新打开时,VS 2019 恢复了哪些文件?
-
如问题所述,我至少有一个名为 TestBed 的项目,它是解决方案的一部分,但不是应用程序的一部分。这是一个成熟的应用程序,仅在主应用程序中有 139 个项目和几百万个 LOC,所以我没有检查每个项目中的每个文件,但我已经测试了足够多的内容,知道绝大多数都有问题。
-
不客气。只是让您知道,当您编写“大量项目”时,我预计可能是 15 个而不是 139 个。您对大的定义和我的显然不同。现在更清楚你为什么要使用“绝大多数”这个词了。尽早获得确切的数字只是为了了解实际而不是感知的大小会很好。无论如何,你回答中的第 6 步是最让我感兴趣的。让我们希望检查输出和错误(总是一个好主意)是对其他人最有用的步骤,如果他们遇到类似的事情。
-
嗨@Jazimov,正如我在回答中所说的那样,步骤6中提到的任何错误都不可能相关。当我在这里等待建议时,我继续开发而不是坐下来等待回复:-) 正如我在问题中所说,我已经构建和部署了所以当时没有错误,但我包括了完整说明问题的步骤是无关的。删除和安装不同版本的 VS 是我绝望的决定尝试的,因为我仍然有必要的许可证可用,坦率地说,当它起作用时我感到非常惊讶!
标签: winforms visual-studio-2019 designer