我在WPF和powershell中创建了一个小应用程序,并将其打包为exe以允许其他用户使用。我已经这样做过很多次了,而且它们似乎总是工作得很好。然而,这引起了问题。
它工作正常,我可以在右键单击并使用 powershell 运行时添加它。运行创建的 exe 时出现问题。我使用 WIN-PS2EXE 创建了这个。
它会加载密码提示,然后模块似乎永远不会显示。但它在后台运行,我必须终止任务才能关闭它。在其他机器上也有同样的效果。
通过 Windbg 运行创建的转储文件。
我已经运行了调试应用程序,我得到了以下内容,但没有找到太多关于它可能是什么的信息
Symbol search path is: srv*
Executable search path is: srv*
ModLoad: 00000000`00b30000 00000000`00bd0000 image00000000`00b30000
ModLoad: 00007ffb`72dd0000 00007ffb`72fc8000 ntdll.dll
ModLoad: 00007ffb`56510000 00007ffb`56575000 C:\WINDOWS\SYSTEM32\MSCOREE.DLL
ModLoad: 00007ffb`71bd0000 00007ffb`71c8d000 C:\WINDOWS\System32\KERNEL32.dll
ModLoad: 00007ffb`70480000 00007ffb`70776000 C:\WINDOWS\System32\KERNELBASE.dll
ModLoad: 00007ffb`6a270000 00007ffb`6a300000 C:\WINDOWS\SYSTEM32\apphelp.dll
ModLoad: 00007ffb`6f030000 00007ffb`6f042000 C:\WINDOWS\SYSTEM32\kernel.appcore.dll
ModLoad: 00007ffb`54850000 00007ffb`551f4000 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
ModLoad: 00007ffb`5afd0000 00007ffb`5afdc000 C:\WINDOWS\SYSTEM32\VCRUNTIME140_1_CLR0400.dll
ModLoad: 00007ffb`55a40000 00007ffb`55a5b000 C:\WINDOWS\SYSTEM32\VCRUNTIME140_CLR0400.dll
ModLoad: 00007ffb`55970000 00007ffb`55a3d000 C:\WINDOWS\SYSTEM32\ucrtbase_clr0400.dll
(21b0.22c8): Unknown exception - code 04242420 (first chance)
ModLoad: 00007ffb`70e00000 00007ffb`70e08000 C:\WINDOWS\System32\psapi.dll
ModLoad: 00007ffb`52400000 00007ffb`53a0f000 C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\mscorlib\987f639e2113a820112aca65fb12396c\mscorlib.ni.dll
(8240.1e0c): Break instruction exception - code 80000003 (first chance)
ntdll!LdrpDoDebuggerBreak+0x30:
00007ffb`72ea0730 cc int 3
当我运行 !analyze -v 时,转储文件给出以下内容
TACK_COMMAND: ~0s; .ecxr ; kb
SYMBOL_NAME: win32u!NtUserMsgWaitForMultipleObjectsEx+14
MODULE_NAME: win32u
IMAGE_NAME: win32u.dll
FAILURE_BUCKET_ID: BREAKPOINT_80000003_win32u.dll!NtUserMsgWaitForMultipleObjectsEx
OS_VERSION: 10.0.19041.1
BUILDLAB_STR: vb_release
OSPLATFORM_TYPE: x64
OSNAME: Windows 10
IMAGE_VERSION: 10.0.19041.4123
FAILURE_ID_HASH: {ab2d2e3e-edb3-a979-68f2-e3be023a5515}
Followup: MachineOwner
PS 代码或 XAML 代码中没有断点。
!analyze -v -hang 显示:
STACK_COMMAND: ~0s ; .cxr ; kb
SYMBOL_NAME: win32u!NtUserMsgWaitForMultipleObjectsEx+14
MODULE_NAME: win32u
IMAGE_NAME: win32u.dll
FAILURE_BUCKET_ID: APPLICATION_HANG_cfffffff_win32u.dll!NtUserMsgWaitForMultipleObjectsEx
OS_VERSION: 10.0.19041.1
BUILDLAB_STR: vb_release
OSPLATFORM_TYPE: x64
OSNAME: Windows 10
IMAGE_VERSION: 10.0.19041.4123
FAILURE_ID_HASH: {d44568b7-4ea6-d9b8-71f9-5e0773589878}
Followup: MachineOwner
---------
我已经按照网上的一些建议运行了SFC和DISM,但仍然得到相同的结果。
我的Winform程序也遇到了同样的问题,这个问题在两台电脑上都出现过一次。我通过事件查看器发现出现这两个问题时Windows正在更新,并且发现win32u.dll被修改了。 从那时起我已经多次运行我的程序并且这个问题没有再次出现。 不知道是不是更新导致的,不过目前是正常的