Ich arbeite mich gerade in Universal Apps ein und bin über einen dummen Fehler gestolpert. Da in einer Universal App der gemeinsame Code in die entsprechenden Projekte geklinkt wird, muss an einigen Stellen in den .cs Dateien über Compiler Anweisungen mitgeteilt werden, wenn Code nicht zu verwenden ist. Gerade bei der app.Xaml wird dies deutlich. Ich hatte gehofft dies durch IoC besser lösen zu können und habe einfach die App.Xaml gelöscht und für jedes Projekt neu angelegt, mit dem Ergebnis, dass ich folgenden Fehler bekam:

Error    1    Program ‚d:\Source\TFS\UniversalNorthwind\UniversalNorthwind.WindowsApp\obj\Debug\intermediatexaml\UniversalNorthwind.WindowsApp.exe‘ does not contain a static ‚Main‘ method suitable for an entry point    D:\Source\TFS\UniversalNorthwind\UniversalNorthwind.WindowsApp\CSC    UniversalNorthwind.WindowsApp

Ich bin sehr schnell auf die Idee gekommen, das hier wohl der Entry Point in der appxmanifest angepasst werden muss und habe dies umgehend getan, nur leider hat es nichts gebracht. Nach einigem Rumprobieren hatte ich sogar den Eindruck gewonnen, dass es völlig egal sei, was ich in das Feld eintrug.

Entry Point appxmanifest

Mein eigentlich Fehler war aber, dass ich die neue App.Xaml nur per Copy&Paste eingefügt habe. Dabei wurde die Build Action der Datei auf Page gesetzt. Tatsächlich muss sie aber auf ApplicationDefinition gesetzt sein. Hat man dies getan, funktioniert auch alles.

ApplicationDefinition