我有一个简单的WPF应用程序,我试图开始.我遵循Microsoft模式和实践"WPF的复合应用程序指南".我按照他们的指示操作,但是我的WPF应用程序立即失败并出现"TypeInitializationException".
InnerException属性显示"System.Windows.Navigation.BaseUriHelper的类型初始值设定项引发异常."
这是我的app.xaml:
<Application x:Class="MyNamespace.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Resources>
</Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)
这是我的app.xaml.cs(在"public App()"中引发的异常):
public partial class App : Application
{
public App()
{
Bootstrapper bootStrapper = new Bootstrapper();
bootStrapper.Run();
}
}
Run Code Online (Sandbox Code Playgroud)
我已将"App"类设置为项目中的启动对象.
什么是误入歧途?
Adr*_*ark 37
谢谢@ima,你的回答指出了我正确的方向.我使用的是app.config文件,它包含:
<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>
Run Code Online (Sandbox Code Playgroud)
似乎问题是<startup>元素,因为当我删除它时,应用程序运行正常.我很困惑因为Visual Studio 2008添加了当我选中该框以使用3.5 SP1中提供的"客户端配置文件"时.
关于检查和取消选中框后,我最终得到了一个像这样的配置文件:
<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>
Run Code Online (Sandbox Code Playgroud)
哪个有效!
我不确定为什么app.config中的元素顺序很重要 - 但它似乎是.