每次启动 PowerShell ISE(x64 或 x86)时,都会出现以下情况:
它完全按照图示绘制,但立即无响应。底部的黑色部分在窗口边界内。
PowerShell CLI 运行良好。
除了我尝试关闭应用程序时应用程序挂起的记录外,我在事件查看器中看不到任何内容。
我尝试下载GlobalUserInterface.CompositeFont
字体作为解决方案 #3 的一部分,网址为这个问题,但下载链接似乎已损坏。
截至本文发布时,我还没有待处理的 Windows 更新。我正在运行 Windows 10 Pro 21H2。
我怎样才能知道发生了什么事?
编辑(2021-01-02T03:32Z):显然它启动得太慢了。它最终渲染了,10分钟后如果 Visual Studio 2022 可以在 10 秒内打开,那么 PS ISE 就没有借口了。到底发生了什么?
答案1
PowerShell ISE 尝试访问最近文件列表时速度很慢,并且连接反复无法访问不再存在的网络路径。我通过删除此目录解决了这个问题:
C:\Users\{username}\AppData\Local\Microsoft_Corporation\powershell_ise.exe_StrongName_lw2v2vm3wmtzzpebq33gybmeoxukb04w
我通过运行 Sysinternals Process Monitor、按 PowerShell_ISE 的 PID 进行过滤并查看渲染停止前发生的最后一件事发现了这一点。它做的最后一件事是读取该目录中的文件。然后它只是报告了几分钟的“线程退出”。
我将大部分文件存储在 NAS 上,出于某种原因,我通过 IP 在 ISE 中打开了一两个文件,而不是通过映射的网络驱动器。ISE 尝试解析每个文件,但花了很长时间才超时。
答案2
就我而言,导致 PowerShell ISE 启动速度变慢的是控制台历史记录。这是一个几乎 2GB 的文件,包含许多重复的命令。删除此文件解决了这个问题:
C:\Users\{username}\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
我还使用前面提到的 Sysinternals 进程监视器发现了这一点。它显示对此文件有很多访问。
答案3
对我们来说,PowerShell ISE 启动速度变慢的原因是“显示命令插件”。当显示命令插件打开时,它类似于运行 get 命令。请确保取消选中它,下次启动 ISE 时,速度应该会更快
答案4
正如 @JD Mallen 所说。就我而言,我将自动保存信息存储在以下文件夹中的 XML 文件中:
AppData\
Local\
Microsoft_Corporation\
powershell_ise.exe_StrongName_lw2v2vm3wmtzzpebq33gybmeoxukb04w\
3.0.0.0\
AutoSaveInformation
我删除了 XML 文件,现在一切正常。