WPF-app-Startproblemen
Mein Gehirn ist über die ganze Karte versucht zu verstehen, Einheit jetzt. Also beschloss ich, einfach nur Tauchen in und starten Sie das hinzufügen von es in eine Filiale, um zu sehen, wohin es mich auch führt. Erstaunlicherweise (oder vielleicht auch nicht), bin ich stecken gerade darn meine Anwendung zu laden richtig.
Wie es scheint, der richtige Weg dies zu tun ist, zu überschreiben, OnStartup im App.cs. Ich habe entfernt mein StartupUri von App.xaml, damit es nicht beim erstellen meiner GUI in XAML. Meine App.cs sieht jetzt so etwas wie dieses:
public partial class App : Application
{
private IUnityContainer container { get; set; }
protected override void OnStartup(StartupEventArgs e)
{
container = new UnityContainer();
GUI gui = new GUI();
gui.Show();
}
protected override void OnExit(ExitEventArgs e)
{
container.Dispose();
base.OnExit(e);
}
}
Das problem ist, dass nichts passiert, wenn ich starten Sie die app! Ich setzte einen Haltepunkt an der container
Aufgabe, und es wird nie getroffen.
Was bin ich? App.xaml ist derzeit auf ApplicationDefinition, aber ich würde erwarten, dass dies zu arbeiten, weil einige Beispiel-Einheit + WPF-code, den ich schaue (von Codeplex) tut genau dasselbe, außer, dass es funktioniert!
Habe ich auch begonnen, die app von single-stepping, und die er schließlich trifft die erste Zeile in der App.xaml. Wenn ich in dieser Zeile, das ist, wenn die app nur startet "running", aber ich sehe nichts (und mein breakpoint ist nicht der hit). Wenn ich die genaue gleichen Sache, in der Beispielanwendung Schritt in eine App.xaml bringt mich direkt in OnStartup, das ist, was ich erwarten würde, passieren. Argh!
Habe ich auch gerade erstellt eine neue WPF-Anwendung von Grund auf, StartupUri entfernt, überschrieb OnStartup(), und es funktioniert auch. WTH?
Ist es eine Schlechte Sache ist, nur die Einheit Bau in meine GUI ' s Window_Loaded event-handler? Es tut wirklich auf der App-Ebene?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie, dass das x:Class in der App.xaml in der gleichen namespace/Klasse wie in Ihrer App.xaml.cs. Es ist leicht zu kopieren/einfügen aus einem anderen Projekt und zu vergessen, dies zu ändern.
Wenn aus irgendeinem Grund Sie es nicht schafft, dieses Problem zu lösen, entfernen Sie die App.xaml, und fügen Sie eine
Main()
die nichtnew App().Run()
. Wenn dies nicht funktioniert entweder, es ist etwas wirklich seltsam hier.In meinem Fall drücke ich die "etwas wirklich seltsam" Teil, Julien Lebosquain bezeichnet.
Ich hielt die überprüfung und erneute überprüfung von Namen, namespaces, event-Handler etc. und konnte nicht sehen, nichts falsch, aber immer noch mein WPF-Hauptfenster.xaml gehalten Eröffnung der ersten, unter Umgehung der erforderlichen Start-Methode.
Irgendwann habe ich gelöscht MainWindow.xaml ... aber es tauchte zuerst. An welcher Stelle, säuberte ich die Lösung, gelöscht die binaries von der Festplatte (nach änderung der start-up-Projekt) und geschlossen und wieder geöffnet die Lösung.
Diese 'Feste' mein problem.
Dein problem scheint nicht im Zusammenhang, um die Einheit in allen... Stellen Sie sicher, dass :
YourProject.App
(in den Projekt-Eigenschaften Seite)Ansonsten kann ich keinen Grund sehen, warum es nicht funktionieren sollte...
Update : gerade eine andere Idee... Versuchen, die
StartupUri
zurück zur App.xaml, und rufen Sie die Basis-Implementierung inOnStartup
:Ich hatte ein ähnliches problem-Meine App-Konstruktor und OnStartup nicht genannt wird (breakpoints nicht der hit). Im Falle jemand anderes läuft über diesen thread, hier ist eine andere Sache, die schief gehen können.
Habe ich eine Lösung mit mehreren Anwendungen, von denen nur ein Dienstprogramm-ich benutze zum verwalten von XML-Dateien. Es wird nicht viel verwendet, so dass ich im Grunde vergessen. Ursprünglich, meine builds waren für "Any CPU", aber vor kurzem musste ich ändern Sie Sie in "x86" durch eine Bibliothek, die ich verwendet wurde. Heute brauchte ich um dieses Dienstprogramm auszuführen, aber es stürzt ab und im debugger nichts in der App-Klasse aufgerufen wurde. Nach der überprüfung namespaces (die waren OK), habe ich beschlossen, reinigen das Projekt (wie oben vorgeschlagen). Als ich versuchte, führen Sie den app, ich bekam eine Fehlermeldung, dass VS nicht finden konnte, die EXE-Datei. Offenbar, VS war eine alte "Any CPU" EXE gefunden, in der Ausgabe-Verzeichnis Absturz, und dann gelöscht wurde, wenn ich gereinigt das Projekt. Ich habe in der Build - | Configuration Manager, und sicher genug, ich hätte nicht gewählt-Dienstprogramm-app für das "x86" zu bauen. Einmal habe ich Hinzugefügt, es hat alles Super geklappt. Hoffe, das hilft.