C#中的WPF类型初始化exception

我有其他人的基于WPF的.NET 3.5应用程序,我正在尝试更新到.NET 4.5。 代码在.NET 3.5下运行正常,我在Windows 7上运行Visual Studio 2013 Express。更新似乎进展顺利且代码编译良好,但是当我尝试运行应用程序时,我得到以下exception。

An unhandled exception of type 'System.TypeInitializationException' occurred in PresentationFramework.dll Additional information: The type initializer for 'System.Windows.Application' threw an exception. 

以下是stacktrace中的最后几个步骤。

 PresentationFramework.dll!System.Windows.Windows.Application() MiniMon.exe!MiniMon.App.App() MiniMon.exe!MiniMon.App.Main() 

这是app.xaml文件。

     

我可以下载一个示例WPF应用程序(WPFCalculator),它运行正常,所以我尝试将我正在更新的那个剥离到示例应用程序中的内容。 我还尝试在app.xaml.cs中的代码的入口点添加断点,但是在执行该代码之前就抛出了exception。 作为最后的手段,我尝试在Windows 8上运行该应用程序,但得到了同样的错误。

如何解决这个问题?

一个(不是非常有教育意义的)解决方法是启动一个新的4.5项目,并从旧的代码中复制粘贴相关的代码片段。

我通过将app.config中的启动部分移动到之前的最后一部分来解决这个问题,启动部分必须是app.config中的最后一部分,如下所示:

迟到了,但在我的情况下发现了这个原因。 我在app.config添加了appSettings key-value对,如下所示

    

之前。 在网上挖掘时,我开始知道, 必须位于root的顶部,在之后不久,其余的订单都无关紧要。 移动下面的appSettings帮助我解决了这个问题。

深入研究Exception详细信息直到最后一次InnerException,我发现了这个:

 "Only one  element allowed per config file and if present must be the first child of the root  element" 

configSections移动到开头

标记应部分之后。 这使我的代码工作。

检查connectionStrings的拼写,如果使用connectionString="" ! ‘S’应该是大写..XML区分大小写:)

检查app.config文件,确保您没有不再使用的lib或者已从项目中删除的lib的配置

我更换了折旧的配置库,并删除了entity framework,所以我无法追踪到底有什么问题,但重建帮助了我。 重建App.Config文件的解决方案。