.NET框架应用程序在特定机器上启动需要1分30秒

问题描述 投票:0回答:1

我有一个 MonoGame 应用程序,在大多数机器上运行良好,但在我的主 PC 上启动需要 1 分 30 秒。

调试时它之前挂起

'ZodFortressMono3.8.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'ZodFortressMono3.8.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Users\urato\source\repos\ZodFortressMono3.8\ZodFortressMono3.8\bin\Debug\net472\ZodFortressMono3.8.exe'. Symbols loaded.
'ZodFortressMono3.8.exe' (CLR v4.0.30319: ZodFortressMono3.8.exe): Loaded 'C:\Users\urato\source\repos\ZodFortressMono3.8\ZodFortressMono3.8\bin\Debug\net472\MonoGame.Framework.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'ZodFortressMono3.8.exe' (CLR v4.0.30319: ZodFortressMono3.8.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'ZodFortressMono3.8.exe' (CLR v4.0.30319: ZodFortressMono3.8.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'ZodFortressMono3.8.exe' (CLR v4.0.30319: ZodFortressMono3.8.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'ZodFortressMono3.8.exe' (CLR v4.0.30319: ZodFortressMono3.8.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
33

在输出控制台上。

无论构建配置如何,或者如果我在 IDE 中启动它,或者我手动启动发布构建,或者如果我在另一台计算机上构建并在我的主 PC 上启动可执行文件,问题仍然存在。

我正在使用 Visual Studio 2022,我已尝试更新显卡驱动程序,重新安装 Visual Studio。

我不知道如何诊断这个问题并到处寻找。

之前的机器是Windows Surface平板电脑(Windows 10),主电脑是硬件更好的游戏PC(I7、3080)。

在我的另一台机器上,它在不到 1 秒的时间内启动。

编辑: 使用 procom.exe,我检查了为我的应用程序过滤的两台 PC 中的事件日志: (观察轴,它们在每个图表上的比例不同)。

大部分操作都是打开注册表项。通过查看 procom.exe 中的事件,我可以看到大多数事件都在查看输入/操纵杆:

似乎在坏(慢)电脑上,应用程序会立即检查大量注册表项,然后检查一些更慢的注册表项,再重复两次,然后在加载前将操作分散到接下来的 45 秒内。

在好的电脑上,它似乎会尽快完成加载,然后在不到 5 秒的时间内完成加载。

坏电脑也比好电脑执行更多的事件。

我不知道是什么原因导致的。

我正在尝试将项目从一台电脑移植到另一台电脑。

c# visual-studio monogame
1个回答
0
投票

该问题是 SLD 2 的一个错误,该错误会在某些设备上挂起,慢速 PC 上使用的海盗船键盘就是其中之一。

解决方案是迁移到较新版本的 SDL,该版本对黑名单设备进行多项硬件检查,或者在启动期间拔下设备。

© www.soinside.com 2019 - 2024. All rights reserved.