我有一个使用此Main方法的WinForms应用程序:
public Main()
{
MessageBox.Show("1");
InitializeComponent();
MessageBox.Show("2");
EnsureServiceIsInstalled();
MessageBox.Show("4");
LoadStationsFromConfigFile();
MessageBox.Show("5");
}
还有这种方法:
private void EnsureServiceIsInstalled()
{
MessageBox.Show("3");
[ ... ]
运行时,我看到消息#1和#2 - 然后抛出异常并且程序崩溃。
修改:
它在调试器中运行完全正常,并且根本不会崩溃。但是如果我在调试器之外运行它,我就会遇到这个问题。
在崩溃之前消息#3怎么可能不显示?
答案 0 :(得分:3)
如果JITter无法JIT EnsureServiceIsInstalled
方法,则会发生这种情况;通常,如果它使用装载程序无法找到的装配体
如果首先在该方法中使用的任何类型的类型初始化程序抛出,也会发生这种情况。
将外部方法包装在catch
块中,以查看正在抛出的异常。