Visual Studio 2022 WinForms 设计器卡在“加载设计器...”

24
当我尝试在解决方案的启动项目中打开WinForms设计器时,会出现“正在加载设计器...”、“在后台加载设计器时您可以继续工作”的提示。这个提示界面会一直停留,并且设计器无法加载。这似乎发生在项目中的任何表单或控件中。
如果我尝试在同一解决方案中的另一个项目中打开另一个表单的设计器,我会看到同样的提示界面,但几秒钟后设计器就会被打开。
我尝试了清理项目、删除“.VS”目录、重新启动机器,但都没有帮助...
有什么建议吗?

2
在存在此问题的计算机上,建议使用传统的“Windows Forms App (.NET Framework)”项目模板。.NETCore的设计师是在进程外运行的,这使其容易受到不良安全软件的攻击。 - Hans Passant
对我也不起作用。我猜机器太旧/太慢了。尝试了不同的方法,没有任何作用。将日志记录切换到详细模式后,显示它挂在“Creating VSCodeDomDesignerLoader”上。等待了10分钟或更长时间,多次尝试,仍然无效。可能等待更长时间会使其工作,因为任务管理器显示SQL Server活动@HansPassant:这与安全性无关。 - Wiktor Zychla
我遇到了这个问题,但它是间歇性的。 - Kirsten
刚刚在一个新项目中遇到了这个问题。使用的是VS 2022,版本号17.7.4。主窗体(空白)无限期地停滞不前。 - undefined
15个回答

13

我遇到了相同的问题。

通过以管理员身份运行VS 2022解决了问题。

并且等待Nuget包更新。


今天仍然有效!在以管理员身份运行一次之后,下次您可以以普通用户身份使用。 - undefined

3

我遇到了同样的问题。我尝试了还原Nuget包,问题解决了。

  1. 选择 工具 -> 选项 -> NuGet程序包管理器,然后勾选允许Nuget下载丢失的包
  2. 右键单击解决方案,选择还原Nuget包
  3. 关闭解决方案并重新打开。

当我第一次尝试时,它仍然无法工作。但是之后我重新启动了VS,它又加载了。 - Ooker
1
所有软件包都已经安装完毕,无需恢复任何内容。 - Anders Lindén
我没有一个名为"恢复Nuget包"的入口。 - Xan-Kun Clark-Davis
太好了,这个方法有效,甚至不需要重新启动VS。只是加载设计师花了半分钟的时间。 - undefined

3

我曾遇到同样的问题。

  1. 复制项目目录中的所有文件。
  2. 使用模板"Windows Forms App(.NET Framework)"而不是"Windows Forms App"创建一个新项目。
  3. 然后将旧项目中的所有文件复制到新项目中。

2

多年来,我在Winforms中遇到了这种情况很多次,现在又再次遇到了。我猜测这纯粹是Visual Studio的资源问题,加上设计师未能获取其声称的所有内存时缺乏错误处理。

为什么: 在过去的一周中,我尝试了几次但都失败了,这是一个较小的中等规模解决方案,但具有复杂的表单设置(许多控件/许多嵌套级别的选项卡等)。

经过几天的努力后,我终于又让它加载了起来。今天早上我怀疑是内存/资源问题,所以我:

  • 关闭了所有东西
  • 关闭了所有带有大量选项卡的浏览器
  • 重新启动了VS并关闭了任何其他更大的应用程序,并重新启动了VS(VS2022社区版)。
  • 离开电脑并进行了漫长的咖啡冲泡

当我回来时,惊喜的是-它在5天后第一次加载。

下次如果我再遇到这种情况,真正有趣的将是切换到另一台计算机-如果有机会的话。

@Microsoft员工,如果您看到这个,请尝试使用低资源进行压力测试,并查看表单设计器的行为。

编辑:我不以管理员身份运行VS。


1

我通过取消选中“在解决方案资源管理器中跟踪活动项”选项来修复了它。

按照以下步骤禁用此选项:

  1. 单击菜单“工具 > 选项”
  2. 展开“项目和解决方案”,然后单击“常规”
  3. 取消选中“在解决方案资源管理器中跟踪活动项”选项
  4. 单击“确定”
  5. 现在你可以通过点击例如 Form1.cs 来打开表单编辑器进行编辑

0
这是一个副作用,因为有签名的子项目?设计师似乎无法解决启用此功能的组件。

0
对于VS 2022,在项目解决方案资源管理器上enter image description here

右键单击, 选择分析和代码清理, 选择设置分析范围, 选择

每个表格立即加载....


0

首先,您必须检查NuGet包管理器 工具 -> NuGet包管理器 -> 包管理器设置

弹出窗口中,单击NuGet包管理器 -> 常规 在此选项卡中,勾选“允许NuGet下载缺失的软件包”。

移动到下方的“软件包源”选项卡,如果您只有一个源是“Microsoft Visual Studio离线包”,则可以从API NuGet添加软件包

点击确定,完成啦!


0

如果我的项目没有<Platforms>标签,我会得到这个错误。

如果我将标签更改为<Platform>(即使我只有一个平台x86),它也会挂起设计器。如果我切换回<Platforms>,它就可以工作了。(在两者之间重新加载项目。)如果我没有标签(我从props文件继承属性),它就不起作用。

只要有<Platforms>标签,它通常都能正常工作。我还需要在引用的具有基本表单类的项目中使用此类标记。(如果基础库中没有此类标记,则设计器将开始加载但会卡在灰色背景上。)


这激发了我尝试只是卸载/重新加载项目,而且对我来说起作用了。我没有一个Platform / Platforms标签 - 这是一个全新的分支项目在一个全新的解决方案中。卸载/重新加载项目一定有某种神奇的效果。 - Michael Bray

0
如果设计师正在等待Intellisense(设计师可能会说“等待IntelliSense完成初始化”),请在“工具>>选项>>环境>>预览功能”中取消勾选“更快加载项目”选项。

enter image description here

在我的情况下,取消勾选后设计师立即加载。最终,您需要重新启动Visual Studio。
这是一个2020年的回答,链接为https://developercommunity.visualstudio.com/t/winforms-designer-not-loading-message-says-waiting/1161031,但它仍然适用于我的Visual Studio 2022。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接