我从C#应用程序启动一个命令行应用程序,这个命令行应用程序是另一个C#应用程序,并且不时引发异常并死掉,这通常不是问题,代码知道如何处理这个情况下。
问题是每当它引发此错误时都会显示Windows调试窗口。有什么办法可以从调用程序中禁用它吗?就像ProcessStartInfo
属性一样,我可以用它来防止它发生?
我也可以更改命令行程序,但我不应该这样做。
答案 0 :(得分:1)
您看到的是Just-In-Time Debugger,要使您的程序从检测到的程序列表中排除,这些程序将启动调试程序,您必须将您的exe名称放在以下注册表中
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\AutoExclusionList
如果您运行的是64位版本的Windows,则还应将exe名称添加到
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\AutoExclusionList
创建一个新的REG_DWORD值,将其命名为YourAppName.exe
并将值设置为1
。
有关详细说明,请参阅this MSDN article。
答案 1 :(得分:0)
错误显然是由未处理的异常引起的。
假设它是一个命令行应用程序,为什么不直接用try ... catch
块包装整个Main
方法并以适当的方式处理异常,比如将错误代码返回给控制台或您需要/想要做的其他事情。