Frage

Ich habe eine einfache WPF-Anwendung, die ich zu starten versuchen. Ich folge den Microsoft Patterns and Practices "Composite Application Guidance für WPF". Ich habe ihre Anweisungen befolgt aber meine WPF-Anwendung sofort mit einem „TypeInitializationException“ fehlschlägt.

Die Innerexception-Eigenschaft zeigt, dass „Die Typeninitialisierer für‚System.Windows.Navigation.BaseUriHelper‘eine Ausnahme ausgelöst hat.“

Hier ist mein 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>

Und hier ist mein App.xaml.cs (Ausnahme bei "public App ()" geworfen):

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

Ich habe die „App“ Klasse, die als Startobjekt im Projekt festgelegt.

Was geht verloren?

War es hilfreich?

Lösung

Danke @ima, deine Antwort wies mich in die richtige Richtung. Ich war mit einer app.config-Datei und es enthielt diese:

<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>

Es scheint, das Problem war die -Element, denn wenn ich es die Anwendung entfernt lief gut. Ich war verwirrt, weil Visual Studio 2008 hinzugefügt, dass, wenn ich die Box überprüfte die „Client Profile“ in 3.5 SP1 zu nutzen.

Nachdem ich einige Ausmisten über die Überprüfung und un-Kontrollkästchen I mit einer Konfigurationsdatei wie folgt endete:

<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>

Welche funktioniert!

Ich bin mir nicht sicher, warum die Reihenfolge der Elemente in der app.config wichtig ist - aber es scheint, es ist

.

Andere Tipps

Alles, was falsch in der App.config Datei kann den Fehler verursachen, wie ein Tippfehler von * am Ende einer Zeile, zB ...</startup> hat ein zusätzliche „*“ am Ende der Zeile ...</startup>*.

Haben Sie CONFIG-Datei verwenden? Wenn ja, überprüfen Sie es auf Fehler. Initialisierung Fehler dieser Art werden oft durch ungültige XML ausgelöst. Wenn es keine Fehler in XAML, XML-Konfigurations ist der erste Blick

die Innerexceptions Spur tief unten, könnten Sie die folgenden Fehler finden:

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

Die Bestellung Änderung geschah, nachdem Visual Studio EntityFramework Wizard das Element connection nach oben

hinzugefügt

Wenn Sie nur die TypeInitializationException ohne Grund oder keine Details sehen, was falsch ist, dann deaktivieren Just My-Code in den Visual Studio-Optionen.

Für mich hatte ich App-Einstellungen kopiert von einer anderen Anwendung in meine app.config in einen neuen Abschnitt namens „Usersettings“. Allerdings muss es eine „configSections“ auch auf die app.config hinzugefügt werden, die „Usersettings“ definiert. Ich löschte den Usersettings Abschnitt dann die App-Einstellungen bearbeitet und gespeichert es. VS erstellt automatisch die richtigen „Usersettings“ und „configSections“ für Sie, wenn sie nicht vorhanden sind.

Sie haben zwei Abschnitte genannt „Module“. Legen Sie beiden Moduldefinitionen in einem Abschnitt mit dem Namen „Module“.

Ich lief in einer ähnlichen Situation. Nach einer Woche Zeit auf der Suche, fand ich die Auflösung und es wirklich für mich gearbeitet. Es löste 2-3 Probleme durch gleiches Problem entstehen.

Gehen Sie folgendermaßen vor: Überprüfen Sie die WPF-Taste (Abwesenheit) in der Registrierung: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v3.0 \ Setup \ Windows Presentation Foundation Mein Problem war, aufgrund der Abwesenheit der oben genannten Schlüssel in der Registry.

Sie ändern können und folgende Angaben in Ihrer Registrierung verwenden: (Eigentlich kann man in der Datei und Import in der Registry speichern)

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v3.0 \ Setup \ Windows Presentation Foundation] @ = "WPF v3.0.6920.1453" "Version" = "3.0.6920.1453" "WPFReferenceAssembliesPathx86" = "C: \ Programme \ Reference Assemblies \ Microsoft \ Framework \ v3.0 \" "WPFCommonAssembliesPathx86" = "C: \ Windows \ System32 \" "InstallRoot" = "C: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ WPF \" "InstallSuccess" = dword: 00000001 "Productversion" = "3.0.6920.1453" "WPFNonReferenceAssembliesPathx86" = "C: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ WPF \"

Ich bin sicher, dass es funktionieren wird.

alles Gute.

Grüße,

Umesh

In meinem Fall ist dies muß hinzugefügt werden:

<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" />

Sektion bei App.config (VS 2015 .NET 4.5.2)

Öffnen Sie ein beliebiges WPF-Projekt, was vor builded, Build überprüfen, ob OK - überprüfen und vergleichen App.config ist bei beiden Projekten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top