2016-04-15 11 views
7

Ich lerne Xamarin Forms für Visual Studio 2015 und versuche, ein einfaches Shared-Projekt mit Xaml zu erstellen, aber ich bekomme immer InitializeComponent nicht vorhanden (sowie einen Verweis auf Xaml-Steuerelemente in CS-Klassen).Xamarin Forms InitializeComponent existiert nicht

Ich verstehe, dass Xaml in den neuesten Versionen von Xamarin in Shared Xamarin Forms Projects (und nicht nur in PCL-Projekten) funktioniert. Ich habe versucht, die letzten Betas laufen zu lassen, die vor weniger als einem Monat veröffentlicht wurden, aber immer noch kein Glück.

Jeder Rat wird sehr geschätzt.

+0

Bitte teilen Sie XAML und CS-Dateien – Sreeraj

Antwort

12

Stellt sich heraus, ich musste manuell die Eigenschaften für alle XAML-Dateien ändern wie folgt:

Build Action: Embedded resource 
Custom Tool: MSBuild:UpdateDesignTimeXaml 

Aus irgendeinem Grund das Hinzufügen neuer XAML-Dateien bildet nicht diese mit den neuesten Xamarin in VS2015 vorbelegt.

2

Dies passiert, wenn Ihr XAML-Markup ungültig ist. Es gibt eine Hintergrundkompilierungsaufgabe, die die XAML-Datei analysiert und eine Codedatei generiert (die normalerweise vor dem Entwickler verborgen ist), die diese Steuerreferenzen deklariert. Wenn Ihr XAML nicht gültig ist, schlägt diese Aufgabe automatisch fehl, und Ihre ersten Hinweise sind die von Ihnen beschriebenen Symptome.

Kommentieren Sie den Inhalt Ihrer XAML-Datei mit der Standard-XML-Kommentarsyntax (umschließen Sie ihn mit <!-- und -->), und bauen Sie dann Ihr Projekt neu, um alle Fehler zu beseitigen. Möglicherweise müssen Sie auch Code in Ihren CS-Dateien vorübergehend auskommentieren, um ihn zu erstellen. Sobald Sie es erstellt haben, können Sie zurückgehen und beginnen, Ihr XAML auszukommentieren, bis Sie den Teil gefunden haben, der es kaputt gemacht hat.

1

Probieren Sie es aus: die Paket-Manager-Konsole öffnen, legen Sie die Folgezeile: Update-Paket -project your_pcl_project_name -Neuinstallation

4

hatte ich das gleiche Problem. Und es stellte sich heraus, dass der vollständig qualifizierte Klassenname in Xaml genau der CS-Datei entsprechen muss. Ich habe das Namensraumgehäuse korrigiert und es hat funktioniert !!