2008-09-12 7 views
21

私が開始しようとしている単純なWPFアプリケーションがあります。私はMicrosoft Patterns and Practices "WPF用複合アプリケーションガイダンス"に従っています。私は彼らの指示に従ってきましたが、私のWPFアプリケーションはすぐに "TypeInitializationException"で失敗します。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(例外は "公共のApp()" で投げ)である:

public partial class App : Application 
{ 
    public App() 
    { 
     Bootstrapper bootStrapper = new Bootstrapper(); 
     bootStrapper.Run(); 
    } 
} 

私が設定していますプロジェクト内のスタートアップオブジェクトとして "App"クラス。

何が起こっていますか?

答えて

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> 

は、私がそれを削除したときにアプリケーションが正常に走ったため、問題が<起動>要素だったようです。 3.5 SP1で利用可能な「クライアントプロファイル」を利用するためにボックスをチェックしたときにVisual Studio 2008がそれを追加したので、私は混乱しました。どの作品

<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の要素の順序が重要である理由は分かりませんが、そうだと思われます。

+9

要素は最初の要素である必要があります。残りの順序は関係ありません。 – Alex

+0

私が正しく覚えているのは、Visual Studio自体で要素を挿入して要素の順序を変更したため、私の混乱です。 –

+2

全く同じエラーがあり、アレックスが私のconfigSectionsを私の設定の一番上に移動して、うまくいきました。クライアントプロファイルから.Net 4に変更されました。 – windowskm

8

.configファイルを使用しますか?その場合は、エラーがないかチェックしてください。そのようなソートの初期化エラーは、無効なXMLによってトリガーされることがよくあります.XAMLにエラーがなければ、まずXML configが見えます。

0

「モジュール」という名前のセクションが2つあります。両方のモジュール定義を "modules"という名前のセクションに配置します。

0

私は同様の状況に遭遇しました。 1週間の検索の後、私は解決策を見つけました。 同じ問題が原因で発生する2-3の問題を解決しました。

次の手順に従います。 レジストリにWPFキー(不在)をチェックしてください: HKEY_LOCAL_MACHINE \ソフトウェアを\マイクロソフト\ NET Frameworkのセットアップ\ NDP \ V3.0の\ SetupをWindowsのPresentation Foundationの\ 私の問題は、の欠如によるものでしたレジストリの上記のキー。

あなたのレジストリに以下の内容を変更して使用することができます

:(実際には、レジストリ内のファイルとインポートに保存することができます)

をマイクロソフト\ NET Frameworkのセットアップ\ [HKEY_LOCAL_MACHINE \ソフトウェア\ NDP \ V3.0の\セットアップ\ Windows Presentation Foundation] @ "WPF v3.0.6920.1453" "バージョン" = "3.0.6920.1453" "WPFReferenceAssembliesPathx86" = "C:\ Program Files \ Referenceアセンブリ\ Microsoft \ Framework \ v3。"InstallSuccess" = dword:00000001 "InstallSuccess" = dword:00000001 "InstallSuccess" = 032 "" InstallRoot "=" C:\ Windows \ System32 \ "" WPFCommonAssembliesPathx86 " "PRODUCTVERSION" = "3.0.6920.1453" "WPFNonReferenceAssembliesPathx86" = "C:\ WINDOWS \ Microsoft.NET \ Frameworkのの\ v3.0の\ WPF \"

私はそれが動作すると確信して

すべて。最高。

よろしく、

Umesh

11

のApp.configファイルに何か問題が行の最後に、このような*のタイプミスなどのエラーを引き起こす可能性が、例えば...</startup>ライン...</startup>*の末尾に「*」の追加があります。深いダウンInnerExceptionsを追跡

+0

パーフェクト。あなたは私の一日を救った。私はこの例外で何が起こっているのか分かりませんでした。私は誤って私のapp.configに「4」と入力しました。それが例外の背後にある理由でした。ありがとう。 –

2

、次のエラーを見つけるかもしれない:

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

だけ表示された場合のVisual Studio EntityFrameworkウィザードがトップ

2

へのconnectionStrings要素を追加した後、この順序の変更が起こりました理由がないか、何が間違っているかについての詳細がないTypeInitializationExceptionが発生した場合は、Visual StudioのオプションでMy Codeを無効にします。私の場合は

0

これを追加する必要がある。App.configファイルで

<configSections> 
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 

節の前に建て何(VS 2015 .NET 4.5.2)

オープン任意のWPFプロジェクトチェックして、両方のプロジェクトでApp.configをチェックして比較する

1

私の場合、app.configに別のアプリケーションから "appSettings"という名前の新しいセクションにアプリの設定をコピーしました。 。しかし、 "configSections"も "userSettings"を定義するapp.configに追加する必要があります。私はuserSettingsセクションを削除してから、アプリケーションの設定を編集して保存しました。あなたが欠けている場合、VSは自動的に正しい "userSettings"と "configSections"を作成します。

関連する問題