我有一个简单的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>
这是我的app.xaml.cs(在“public App()”中引发的异常):
public partial class App : Application
{
public App()
{
Bootstrapper bootStrapper = new Bootstrapper();
bootStrapper.Run();
}
}
我已将“App”类设置为项目中的启动对象。
什么是误入歧途?
答案 0 :(得分:36)
感谢@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>
似乎问题是&lt; startup&gt;因为当我删除它时,应用程序运行正常。我很困惑因为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>
哪个有用!
我不确定为什么app.config中的元素顺序很重要 - 但它似乎是。
答案 1 :(得分:11)
App.config 文件中的任何错误都可能导致错误,例如行尾的*
错字,例如...</startup>
还有一个“ *“在行...</startup>*
的最后。
答案 2 :(得分:8)
你使用.config文件吗?如果是,请检查错误。这种排序的初始化错误通常由无效的XML触发:如果XAML中没有错误,则首先要查看XML配置。
答案 3 :(得分:2)
深入跟踪InnerExceptions,您可能会发现以下错误:
"Only one <configSections> element allowed per config file and if present must be the first child of the root <configuration> element"
在Visual Studio EntityFramework向导将connectionStrings元素添加到顶部
之后,发生了此订单更改答案 4 :(得分:2)
如果您只看到没有原因的TypeInitializationException或没有关于错误的详细信息,请在Visual Studio选项中禁用Just My Code。
答案 5 :(得分:2)
对我来说,我已将应用程序设置从另一个应用程序复制到我的app.config中,进入名为&#34; userSettings&#34;的新部分。但是,需要有一个&#34; configSections&#34;也添加到app.config中,它定义了&#34; userSettings&#34;。我删除了userSettings部分,然后编辑了应用程序设置并保存了它。 VS自动创建正确的&#34; userSettings&#34;和&#34; configSections&#34;如果他们不在你身边。
答案 6 :(得分:0)
您有两个名为“modules”的部分。将两个模块定义放在名为“modules”的一个部分中。
答案 7 :(得分:0)
我遇到了类似的情况。 搜索了一周后,我找到了解决方案,它确实对我有用。 它解决了由于同样问题引起的2-3个问题。
请按以下步骤操作: 检查注册表中的WPF密钥(缺席): HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework安装\ NDP \ v3.0 \ Setup \ Windows Presentation Foundation 我的问题是由于注册表中没有上述密钥。
您可以在注册表中修改和使用以下详细信息:(实际上,您可以保存在文件中并在注册表中导入)
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v3.0 \ Setup \ Windows Presentation Foundation] @ =“WPF v3.0.6920.1453” “版本”= “3.0.6920.1453” “WPFReferenceAssembliesPathx86”=“C:\ Program Files \ Reference Assemblies \ Microsoft \ Framework \ v3.0 \” “WPFCommonAssembliesPathx86”= “C:\ WINDOWS \ SYSTEM32 \” “InstallRoot”= “C:\ WINDOWS \ Microsoft.NET \框架\ 3.0 \ WPF \” “InstallSuccess”= DWORD:00000001 “的ProductVersion”= “3.0.6920.1453” “WPFNonReferenceAssembliesPathx86”= “C:\的Windows \ Microsoft.NET \框架\ 3.0 \ WPF \”
我相信它会奏效。
一切顺利。此致
Umesh
答案 8 :(得分:0)
在我的情况下,需要添加:
post_insert_query = u'''
INSERT INTO post(
social_media_id, external_id, post_time, post_date, related_post_id, poster_name, poster_id, title, content, post_url,
follow_account_id)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'''
App.config部分(VS 2015 .NET 4.5.2)
打开之前构建的任何WPF项目,检查构建,如果正常 - 检查并比较两个项目中的App.config
答案 9 :(得分:0)
对我来说,我重命名了我的应用程序名称,并导致了此错误。我有一个服务器和客户端应用程序。服务器应用程序没有此问题。所以我检查了服务器和客户端的App.config文件。我发现了
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
客户端和服务器中
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>