WPF Application fails on startup with TypeInitializationException
Anything wrong in the App.config file may cause the error, such as a typo of *
at the end of a line, eg ...</startup>
has an additional "*" at the end of the line ...</startup>*
.
Do you use .config file? If so, check it for errors. Initialization errors of such sort are often triggered by invalid XML: if there are no errors in XAML, XML config is the first place to look.
Tracking the InnerExceptions deep down , you might find the following error:
"Only one <configSections> element allowed per config file and if present must be the first child of the root <configuration> element"
This order change happened after Visual Studio EntityFramework Wizard added the connectionStrings element to the top
Thanks @ima, your answer pointed me in the right direction. I was using an app.config file and it contained this:
<configuration>
<startup>
<supportedRuntime version="v2.0.50727" sku="Client"/>
</startup>
<configSections>
<section name="modules" type="Microsoft.Practices.Composite.Modularity.ModulesConfigurationSection, Microsoft.Practices.Composite"/>
</configSections>
<modules>
<module assemblyFile="Modules/MyNamespace.Modules.ModuleName.dll" moduleType="MyNamespace.Modules.ModuleName.ModuleClass" moduleName="Name"/>
</modules>
</configuration>
It seems the problem was the <startup> element because when I removed it the application ran fine. I was confused because Visual Studio 2008 added that when I checked the box to utilise the "Client Profile" available in 3.5 SP1.
After some mucking about checking and un-checking the box I ended up with a configuration file like this:
<configuration>
<configSections>
<section name="modules" type="Microsoft.Practices.Composite.Modularity.ModulesConfigurationSection, Microsoft.Practices.Composite"/>
</configSections>
<modules>
<module assemblyFile="Modules/MyNamespace.Modules.ModuleName.dll" moduleType="MyNamespace.Modules.ModuleName.ModuleClass" moduleName="Name"/>
</modules>
<startup>
<supportedRuntime version="v2.0.50727" sku="Client"/>
</startup>
</configuration>
Which works!
I'm not sure why the order of elements in the app.config is important - but it seems it is.