这是我见过的最疯狂的事情
我有一个简单的应用程序,除了datetimepicker之外什么都没有。
如果我在VS(2013-2017)内运行应用程序并打开日历弹出窗口,一切正常。
如果我编译应用程序(调试或发布)并运行它,应用程序会在我单击日历图标后立即关闭。
没有报告异常,附加到运行进程没有捕获任何异常放入未处理的异常catch all都没有捕获UI或应用程序线程上的任何内容。
该应用程序针对任何cpu使用.NET 4.5.1。如果我的目标是x86或64,则结果相同。
我认为这可能是一些安全政策或类似的内容,但对此不够了解,无法向安全团队提出正确的问题。
以下是Debug Diagnostic Tool的日志:
加载控制脚本C:\ Program Files \ DebugDiag \ scripts \ CrashRule_Process_WindowsFormsApp1.exe.vbs DumpPath设置为C:\ Program Files \ DebugDiag \ Logs \崩溃规则,用于WindowsFormsApp1.exe的所有实例
[6/13/2017 11:40:42 AM]
创建过程。 BaseModule - C:\ Users \ developer1 \ Documents \ Visual Studio 2017 \ Projects \ WindowsFormsApp1 \ bin \ Debug \ WindowsFormsApp1.exe。 BaseThread - 系统ID:9468
C:\ Windows \ SysWOW64 \ ntdll.dll加载在0x774f0000
线程创建。新主题 - 系统ID:8472
线程创建。新主题 - 系统ID:14748
线程创建。新主题 - 系统ID:12908
线程创建。新主题 - 系统ID:14436
线程创建。新主题 - 系统ID:5704
线程创建。新主题 - 系统ID:5880
线程创建。新主题 - 系统ID:7596
C:\ Windows \ SYSTEM32 \ MSCOREE.DLL加载在0x74ad0000
C:\ Windows \ syswow64 \ KERNEL32.dll加载在0x769f0000
C:\ Windows \ syswow64 \ KERNELBASE.dll加载在0x76e60000
C:\ Windows \ syswow64 \ ADVAPI32.dll加载在0x76fa0000
C:\ Windows \ syswow64 \ msvcrt.dll加载在0x753b0000
C:\ Windows \ SysWOW64 \ sechost.dll加载在0x75460000
C:\ Windows \ syswow64 \ RPCRT4.dll加载在0x750d0000
C:\ Windows \ syswow64 \ SspiCli.dll加载在0x74d90000
C:\ Windows \ syswow64 \ CRYPTBASE.dll加载在0x74d80000
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ mscoreei.dll已加载到0x74a50000
C:\ Windows \ syswow64 \ SHLWAPI.dll加载在0x751e0000
C:\ Windows \ syswow64 \ GDI32.dll加载在0x77060000
C:\ Windows \ syswow64 \ USER32.dll加载在0x752a0000
C:\ Windows \ syswow64 \ LPK.dll加载在0x769e0000
C:\ Windows \ syswow64 \ USP10.dll加载在0x766e0000
C:\ Windows \ system32 \ IMM32.DLL加载在0x75240000
C:\ Windows \ syswow64 \ MSCTF.dll加载在0x76ec0000
C:\ Windows \ system32 \ ctiuser.dll加载为0x749d0000
C:\ Windows \ syswow64 \ WS2_32.dll加载在0x75050000
C:\ Windows \ syswow64 \ NSI.dll加载在0x75480000
C:\ Windows \ syswow64 \ PSAPI.DLL加载在0x774c0000
C:\ Windows \ system32 \ FLTLIB.DLL加载在0x749c0000
C:\ Windows \ system32 \ VERSION.dll加载在0x749b0000
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ clr.dll加载在0x742f0000
C:\ Windows \ system32 \ MSVCR120_CLR0400.dll加载在0x741f0000
C:\ Windows \ assembly \ NativeImages_v4.0.30319_32 \ mscorlib \ 50bcbedc6ed7027bd709339d3ec4c388 \ mscorlib.ni.dll加载在0x730a0000
C:\ Windows \ syswow64 \ ole32.dll加载在0x76560000
C:\ Windows \ system32 \ uxtheme.dll加载在0x6cdd0000
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ clrjit.dll已加载到0x73020000
C:\ Windows \ syswow64 \ OLEAUT32.dll加载在0x76dc0000
C:\ Windows \ assembly \ NativeImages_v4.0.30319_32 \ System \ 48fb602d35146bc0c0002b21343a9f56 \ System.ni.dll已加载0x72690000
C:\ Windows \ assembly \ NativeImages_v4.0.30319_32 \ System.Drawing \ d59cbbb217b18f4219761e344ccf1c10 \ System.Drawing.ni.dll在0x6a610000加载
C:\ Windows \ assembly \ NativeImages_v4.0.30319_32 \ System.Windows.Forms \ a615de88390374e7e71749451bfa5eaf \ System.Windows.Forms.ni.dll加载在0x653c0000
C:\ Windows \ WinSxS \ x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18837_none_ec86b8d6858ec0bc \ comctl32.dll加载在0x71c90000
在0x6cc30000加载的C:\ Windows \ WinSxS \ x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_41e855142bd5705d \ comctl32.dll
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ nlssorting.dll加载在0x72270000
C:\ Windows \ assembly \ NativeImages_v4.0.30319_32 \ System.Core \ a514635984ff3f4239dc0421b7e024b9 \ System.Core.ni.dll已加载到0x68370000
C:\ Windows \ assembly \ NativeImages_v4.0.30319_32 \ System.Configuration \ a11c194343da7333f7f7e38960758384 \ System.Configuration.ni.dll加载在0x6ab30000
在0x68f70000加载的C:\ Windows \ assembly \ NativeImages_v4.0.30319_32 \ System.Xml \ 43529c5402fb2a8ebc8c76877b802cdc \ System.Xml.ni.dll
C:\ Windows \ syswow64 \ shell32.dll加载在0x75490000
C:\ Windows \ WinSxS \ x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.23721_none_5c052bcda00f9399 \ gdiplus.dll已加载到0x6b010000
C:\ Windows \ system32 \ dwmapi.dll加载在0x6ecc0000
线程创建。新主题 - 系统ID:6124
初始化控制脚本
清除任何现有断点
当前断点列表(BL)
[6/13/2017 11:40:43 AM]
线程退出。退出线程 - 系统ID:6124。退出代码 - 0x00000000
[6/13/2017 11:41:11 AM]
线程创建。新主题 - 系统ID:14984
C:\ Windows \ SysWOW64 \ CRYPTSP.dll加载在0x74c20000
C:\ Windows \ SysWOW64 \ rsaenh.dll加载在0x74be0000
C:\ Windows \ SysWOW64 \ RpcRtRemote.dll加载在0x74bd0000
线程创建。新主题 - 系统ID:13868
线程退出。退出线程 - 系统ID:12908。退出代码 - 0x00000001
线程退出。退出线程 - 系统ID:13868。退出代码 - 0x00000001
线程退出。退出线程 - 系统ID:14984。退出代码 - 0x00000001
线程退出。退出线程 - 系统ID:7596。退出代码 - 0x00000001
线程退出。退出线程 - 系统ID:5704。退出代码 - 0x00000001
线程退出。退出线程 - 系统ID:5880。退出代码 - 0x00000001
线程退出。退出线程 - 系统ID:14436。退出代码 - 0x00000001
线程退出。退出线程 - 系统ID:14748。退出代码 - 0x00000001
线程退出。退出线程 - 系统ID:8472。退出代码 - 0x00000001
流程已退出。退出代码 - 0x00000001
调试间接费用:
总累计得分= 28767(100%)
调试器引擎中花费的总刻度= 920(3%)
在崩溃规则脚本中花费的总刻度= 63(0%)
答案 0 :(得分:1)
嗯,我的经历非常相似。只有一些客户遇到了这个问题。这是由他们的反病毒程序引起的(在我的案例中是CarbonBlack)。
在事件日志中,我通过" CbDefense" EVENTID:17
'信息:应用程序" MYEXEPATH"试图将代码注入流程" MYEXEPATH"通过调用函数" SetWindowsHookExW"。该操作被阻止,Confer终止了申请。'
如果他们点击了WinForm DateTimePicker,它会导致程序崩溃。
(针对C#.NET 3.5构建)
答案 1 :(得分:-1)
您是否有任何DateTimePicker事件的断点?如果是,请删除断点,问题应该停止。这是此页面上每个Microsoft Windows窗体小组的已知问题:https://connect.microsoft.com/VisualStudio/feedback/details/1290685/debugging-datetimepicker-event-hangs-vs:
“DateTimePicker控件安装鼠标挂钩作为其功能的一部分,但是当调试器在断点上停止WinForms应用程序时,如果VS碰巧收到鼠标消息,它就会出现死锁的可能性。现在,不幸的是,死锁是DateTimePicker设计的结果。当点击下拉列表以显示日历时,会安装鼠标挂钩。这意味着不应该在日历处于活动状态时调用的任何事件处理程序中发送断点。我们目前正在调查是否可以解决此问题,如果我们能够提供补救措施,我们将使用更多信息更新此帖子。“