App.xaml.cs中的WPF MessageBox停止MainWindow初始化,因此应用程序永远不会出现,但(显然)正在正常运行

时间:2014-09-17 17:05:30

标签: wpf

没有错误消息,也没有任何迹象表明它没有显示窗口。该应用程序初始化App.xaml.cs:App() {},我可以单步执行App.xaml文件。它得到了启动uri,然后......沉默。输出窗口中没有输出,没有未处理的异常,也没有窗口,我找不到断点进行调试的位置,因为它没有触及MainWindow.xaml.cs的开头。

真的很困惑。 这是在20米前工作。

在那段时间我所做的就是添加Windows.Office.Interop.Outlook参考。我删除了引用并重建但仍然相同。那会导致这个问题吗?谁看过这个吗?谷歌没有帮助!

编辑:

App.xaml.cs

public App()
{
    using (var dbContext = new DBEntities())
    {
        if (!db.Exists())
        {
            try
            {
                db.Database.Create();
                MessageBox.Show("Database created"); // this is the problem!!
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
    }
}

我已经添加了App.xaml.cs,我发现问题是使用MessageBox来提供信息(这仍在开发中!)。我一直想要摆脱它并最终做到了,我的问题就消失了。这意味着我可以找到相关的Goolge结果: MSDN query and answer for exactly my problem

我将在app load和主窗口加载之间添加一个'加载窗口',最终我将能够使用Bindings等反馈信息。

2 个答案:

答案 0 :(得分:0)

如果您创建一个新窗口并将其设置为StartupUri会发生什么? 您可能还想创建一个新项目,并确保现有应用程序中App.xaml中引用的名称空间无意中被无意中编辑过。

答案 1 :(得分:0)

删除MessageBox.Show(..)电话,修正了错误。问题中给出的MSDN URL中选定的答案说明:

  

“我根据您的描述进行了测试,应用程序停止在方法:USER32!GetMessageW + 0x33,调用USER32!NtUserGetMessage”

我认为这是我的情况,尽管我没有测试它。