Xamarin.Forms - InitializeComponent ist beim Erstellen einer neuen Seite nicht vorhanden

73

Ich verwende Visual Studio, um Xamarin.Forms auszuprobieren. Ich versuche, der Anleitung zu folgen: http://developer.xamarin.com/guides/cross-platform/xamarin-forms/xaml-for-xamarin-forms/getting_started_with_xaml/

Kurz gesagt, ich erstelle eine Xamarin.Forms-Lösung mit einer PCL und versuche dann, eine Forms XAML Pagezum PCL-Projekt hinzuzufügen .

Der Code-Behind, der erstellt wird, sieht folgendermaßen aus:

    public partial class Page1 : ContentPage
    {
        public Page1()
        {
            InitializeComponent(); 
        }
    }

Das Problem hier ist, dass InitializeComponent();es rot ist. Wenn ich versuche zu bauen, werde ich darüber informiertThe name 'InitializeComponent' does not exist in the current context

Ich habe mich nach Lösungen umgesehen und obwohl andere die gleichen Probleme hatten, funktionieren ihre Lösungen für mich nicht. Hier ist ein Vorschlag, den ich zu verwenden versucht habe: http://blog.falafel.com/xamarin-error-initializecomponent-does-not-exist-in-the-current-context/

Bitte lassen Sie mich wissen, ob Sie eine Lösung für dieses Problem haben. Vielen Dank!

Aktualisieren:

Meine PCL (wo ich auch meine XAML-Seite hinzufügen möchte) enthält:

App.cs:

    public class App : Application
    {
        public App()
        {
            // The root page of your application
            MainPage = new ContentPage
            {
                Content = new StackLayout
                {
                    VerticalOptions = LayoutOptions.Center,
                    Children = {
                        new Label {
                            XAlign = TextAlignment.Center,
                            Text = "Welcome to Xamarin Forms!"
                        }
                    }
                }
            };
        }

        protected override void OnStart()
        {
            // Handle when your app starts
        }

        protected override void OnSleep()
        {
            // Handle when your app sleeps
        }

        protected override void OnResume()
        {
            // Handle when your app resumes
        }
    }

Und meine XAML-Seite:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="XamaTest.MyXamlPage">
    <Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" />
</ContentPage>

Code-Behind:

    public partial class MyXamlPage : ContentPage
    {
        public MyXamlPage()
        {
            InitializeComponent();
        }
    }
user2915962
quelle
Welche Version des Xamarin Forms-Projekts haben Sie? Ich erinnere mich an ein Problem mit den älteren Projektvorlagen.
Steve Mitcham
Ich sollte erwähnen, dass ich Visual Studio und eine Testversion verwende. Wie kann die Version überprüft oder auf den neuesten Stand gebracht werden? Danke für die Antwort. Ich versuche mit der rechten Maustaste auf die pcl zu klicken und die neuesten Xamarin-Formulare von Nuget herunterzuladen. Gleiches Problem noch.
user2915962
Können Sie den Quellcode Ihres Projekts freigeben?
Artur Shamsutdinov
Vielen Dank, ich habe die Frage aktualisiert. Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.
user2915962
Nur für den Fall: Ich hatte das gleiche Problem, nachdem ich die Lösung in einen neuen Ordner verschoben hatte. Ich musste .csproj-Dateien bearbeiten, um den Ordner "packages" manuell zu aktualisieren, und dann wurde er erneut kompiliert.
bN_

Antworten:

58

UPDATE: Dieser Fehler tritt normalerweise nicht in VS 2015 auf. Wenn dies der Fall ist, ist hier meine ursprüngliche Antwort:

Die Lösung gefunden! Klicken Sie mit der rechten Maustaste auf die XAML-Datei und wählen Sie Eigenschaften .

Sie sehen eine Eigenschaft namens Benutzerdefiniertes Werkzeug . Ändern Sie den Wert von MSBuild:CompilebisMSBuild:UpdateDesignTimeXaml

Dies wird das Problem lösen. Ich weiß nichts über das Downvote, aber hier ist mein Screenshot:

Bildschirmfoto AKTUALISIEREN:

Es erscheint selten wieder. Wenn dies der Fall ist, öffnen Sie einfach die Xaml und den Code hinter den Dateien und speichern Sie sie. Ich weiß, es ist nicht die beste Lösung, aber es erledigt den Job.

Dushyant Bangal
quelle
Gut zu wissen. Sie können es als "nützlich" für den nächsten Kerl markieren, indem Sie +1
Dushyant Bangal
Habe das gleiche bei einem sauberen neuen Projekt aus der Vorlage. Das Ändern und erneutes Speichern der CodeBehind- und .xaml-Datei hat das Problem für mich behoben.
Angularsen
3
In meinem Projekt war der Wert MSBuild: UpdateDesignTimeXaml. Nachdem ich zu MSBuild gewechselt bin: Kompiliere seine Geldstrafe. VS SAUGT
Bruno Brito
2
@Veverke, entschuldige die späte Antwort, aber schau unten in meiner Antwort nach. Wenn Sie bereits MSBuild:CompileXaml und Code hinter Dateien geöffnet haben, speichern Sie diese. Ich weiß, es ist nicht die beste Lösung, aber es erledigt den Job.
Dushyant Bangal
1
Vor kurzem hatte ich das gleiche Problem, und diese Lösung konnte aufgrund des sehr langen Pfades meiner Projektdateien nicht gelöst werden. Ich meine mehr als 160 Zeichen bis zum Klassennamen. Die .g.cs konnte nicht generiert werden. Das Ändern des Weges beendete den Kampf.
Diego Rafael Souza
35

Ich bekomme das manchmal und hier ist die Checkliste, die sie bisher gelöst hat:

  1. Stellen Sie sicher, dass der Namespace in .xaml und .xaml.cs übereinstimmt

  2. Vom richtigen übergeordneten Element erben - ContentPage für eine Seite und ContentView für ein Steuerelement

  3. Setzen Sie die Build-Aktion der .xaml-Datei auf Embedded Resourceif im freigegebenen Projekt.

Wurzel
quelle
1
und für mich - ich brauchte 4. Eigenschaft namens Custom Tool. Ändern Sie den Wert von MSBuild: Kompilieren Sie zu MSBuild: UpdateDesignTimeXaml, wie in einem anderen Beitrag hier angegeben ...
Tony Trembath-Drake
2
Mein Problem war mit x: Class. Es scheint, dass es immer noch auf Seite
frostymarvelous
4
Stellen Sie sicher, dass der Namespace in .xaml und .xaml.cs übereinstimmt. Dies ist ein wichtiger Punkt, der hervorgehoben wird. Visual Studio aktualisiert dies manchmal nicht automatisch.
Aman Sura
1
Unterhaltsame Tatsache: Wenn Sie den Umbenennungs-Refactor für die Klasse verwenden, wird die XAML nicht aktualisiert, was zu diesem Fehler führt. Die IDE ist wie immer keine Hilfe.
Cobus Kruger
1
Ja, das ist der Hauptgrund. Immer wenn wir den Namespace oder den Klassennamen der Datei xaml.cs ändern, wird die zugehörige xaml-Datei nicht aktualisiert. Und das führt zu dem genannten Fehler.
MrClan
32

Meiner Beobachtung nach sind in Visual Studio 2015 die XAML-Eigenschaften bereits standardmäßig so festgelegt, wie dies in den Antworten mit hohen Stimmen vorgeschlagen wird, insbesondere:

  • Benutzerdefiniertes Tool = MSBuild:UpdateDesignTimeXaml
  • Build Action = Embedded Resource

aber der Fehler tritt immer noch manchmal auf ... (wie in dieser anderen Frage ).

Das Bearbeiten der entsprechenden XAML-Datei und das Drücken von CTRL+ Ssollten einwandfrei funktionieren, müssen aber nicht. Eine sauberere Möglichkeit, die Ausführung von benutzerdefinierten Tools zu erzwingen, besteht darin, mit der rechten Maustaste auf die XAML-Datei zu klicken und dann auf das Kontextmenü "Benutzerdefiniertes Tool ausführen" zu klicken.

Geben Sie hier die Bildbeschreibung ein

har07
quelle
12

Ich habe dieses Problem getroffen. Es ist mit der Codierung von XAML-Dateien in VS verbunden. Ich benutze VS2015.

Ich habe dieses Problem wie folgt gelöst:

  1. Öffnen Sie die Datei * .xaml im Projekt und klicken Sie auf die Schaltfläche Speichern. (In VS2015 wird die richtige Codierung angewendet.)

  2. Öffnen Sie dann das Projekt erneut und erstellen Sie es neu. Jetzt gibt es keine Fehler.

Roman Himadinov
quelle
1
Für mich geht das. Das Hinzufügen eines Fehlers zu einem leeren Projekt ist wirklich eine Amateurarbeit von Microsoft. Ich habe viel Zeit gebraucht, um nur Hallo Welt zu kompilieren. Gott segne Android Studio
Jan Hruska
1
Das hat auch bei mir funktioniert! Hoffe wirklich, dass dies bald von MS / Xamarin behoben wird ..
sh1rts
Hat auch für mich gearbeitet!
Penguru
Ich habe die Kodierung nicht geändert. Einfacher "Wiederaufbau" half in meiner Situation
Konstantin
12

Das Aktualisieren des XGarin.Forms NuGet-Pakets sollte den Job erledigen

Thomas Weller
quelle
Danke für den Tipp. Leider hat sich an meinem Fall nichts geändert.
user2915962
Hmm. Ich hatte das gleiche Problem und es hat bei mir funktioniert. Gibt es andere Pakete in Ihrer Lösung?
Thomas Weller
Nein, nur eine "frische" Xamarin.Forms-App mit der Standard-PCL.
user2915962
2
Die Lösung finden Sie hier: blog.galasoft.ch/posts/2014/07/… Anscheinend gibt es einen Fehler beim Erstellen einer neuen xaml-Seite. Es erhält automatisch die Erweiterung .cs anstelle von xaml. Ich habe das nie bemerkt. Vielen Dank!
user2915962
2
@ user2915962 Das NuGet-Paket-Update und Clean / Rebuild (+ Neustart) hat das Problem für mich nicht behoben. Nachdem ich Ihren Kommentar gelesen hatte, entschied ich mich, eine neue Xamarin Forms XAML-Seite hinzuzufügen. Der Fehler "InitializeComponent" auf beiden Seiten ist nach einem Build mit der neuen Seite verschwunden! Sieht aus wie eine Art VS-Statusproblem. Als das Problem da war, konnte ich problemlos durch den vom Compiler generierten InitializeComponent-Code gehen. Ich vermute, dass das Hinzufügen einer neuen XamForms-XAML-Seite nach dem Upgrade des NuGet-Pakets dazu beigetragen hat, einen internen VS-Status zu ermitteln, den ein Clean / Rebuild nicht hatte, der jedoch nicht bestätigt wurde.
Richard Logwood
10

Dies ist wahrscheinlich nicht Ihr Fall, aber ich hatte ein ähnliches Problem und mein Problem war xaml und Code hinter der Namensfehlanpassung. Wenn beispielsweise gemäß Ihrem Beispiel der Code hinter dem Namespace XamaTest ist (in den meisten Fällen der Name Ihrer App) und die Klasse MyXamlPage heißt, muss Ihr xaml-Klassenname XamaTest.MyXamlPage ([Namespace]. [Klassenname]) sein.

Ich war dumm, nachdem ich eine leere XAML mit Code dahinter erstellt hatte. Ich habe den Namen der Klasse in XAML geändert und diesen Fehler erhalten.

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="XamaTest.MyXamlPage">
    <Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" />
</ContentPage>

Code-Behind:

public partial class MyXamlPage : ContentPage
Emil
quelle
Hat funktioniert. Ich habe umbenannt, Foo.xaml.csaber vergessen zu ändern x:Class="XXX.Foo"(Refatoring ist schlecht in VS)
Hassan Tareq
VIELEN DANK!!! Ich bin stundenlang ohne funktionierende Lösung herumgelaufen. Es hat das Gleiche getan - das xaml umbenannt.
Vering
5

Versuchen Sie, ax: Name = "..." auf der xaml-Seite hinzuzufügen ... Nichts anderes hat bei mir funktioniert - aber nach dem Hinzufügen des x: Name-Attributs auf einigen Elementen auf der Seite verschwand der Fehler (meistens - I. bekomme es immer noch manchmal). Ich verwende den neuesten Build (1.5.0.6447) von Xamarin.Forms ...

XAML funktioniert nicht in gemeinsam genutzten Projekten - es funktioniert nur in tragbaren Projekten ...

Kim Rasmussen
quelle
2
Ich hatte 1 Element / Steuerelement, das kein x: Name-Attribut hatte. Einmal fügte ich hinzu, dass der Fehler behoben war
David
4

Ich bin auf diesen Fehler gestoßen, als;

  1. Ich habe ein ContentPage-cs+xamlund das App-cs+xamlaus dem Projekt entfernt, ohne es tatsächlich zu löschen.
  2. Fügen Sie diese dem Projekt in einem anderen Ordner erneut hinzu.

Dies wurde behoben durch;

  1. Wählen Sie die .xamlDatei der Klasse aus, in der das Problem vorliegt.
  2. Klicken Sie mit der rechten Maustaste und wählen Sie properties.
  3. In Build actionselect "Embedded Resource"
  4. In Custom Tool Typ "MSBuild: UpdateDesignTimeXaml"
  5. Sauber und bauen und es war weg.
7vikram7
quelle
4

Überprüfen Sie den Seitentext x:Class="AppName.Page1". AppName muss Ihr App-Name sein

Entwickler d
quelle
3

Es sieht so aus, als ob die (Neu-) Generierung der blah.xaml.g.csDateien tatsächlich das Problem ist. Ich bekomme dies eine Menge in gemeinsam genutzten Projekten (weshalb ich sie nicht benutze, es sei denn, ich habe keine andere Wahl). Aus irgendeinem Grund passiert es in Xamarin Studio viel mehr als in Visual Studio. Ich versuche, XS überhaupt nicht zu verwenden.

Oft wird das Entladen einer der anderen Plattformen (z. B. wenn Sie einen Droiden erstellen, ios entladen) und das Reinigen und Wiederherstellen das Problem beheben.

Sie können auch versuchen, eine .xamlder fehlerhaften Dateien zu öffnen und einige der xaml-Markups zu ändern (z. B. Hinzufügen oder Ändern einer x:Nameder Steuerelemente oder Ansichten). Dies erzwingt eine Neuerstellung der Datei xaml.g.cs und löst (zumindest für mich) normalerweise das Problem.

Das sollte wirklich keine Sache sein.

Wislon
quelle
3

Wenn Sie Intellisense-Fehler wie InitializeComponent auf Ihren Xamarin.Forms-Seiten erhalten, das Projekt jedoch tatsächlich erstellt und ordnungsgemäß ausgeführt wird, fügen Sie einfach eine neue Formularseite hinzu, indem Sie den Assistenten verwenden, um alle Fehler zu beheben ...

Dann können Sie diese neue Seite löschen.

Guillaume Perrot
quelle
2
  • Ich hatte ein ähnliches Problem in der Visual Studio 2013Update 4-Umgebung und habe alle Empfehlungen ausprobiert, die ich im Web gefunden habe. Nichts hat mein Problem gelöst.
  • Dann habe ich versucht, das Problem zu umgehen. Ich habe die Visual Studio 2015Vorschau installiert und eine neue leere App mit dem Xamarin Forms- Projekt erstellt.
  • Als ich eine neue XamlDatei hinzufügte , war alles in Ordnung und das Problem mit der InitialComponentMethode verschwand.
  • Ich weiß nicht genau, wo der Grund für das Problem liegt, aber es scheint ein Problem mit den Konfigurationseinstellungen zu geben.
Tomas Repka
quelle
Willkommen bei Stackoverflow. Verwenden Sie eine Formatierung, um das Format lesbar zu machen.
NJInamdar
Das musste ich auch tun. Aber als ich das alte Projekt aus VS 2013 öffnete, kam der Fehler zurück! In VS 2015 erstellte Projekte zeigen dies nicht an. Vielleicht wird das die Ursache eingrenzen.
Dushyant Bangal
2

Ein Clean and Rebuild hat den Trick für mich getan!

machie27
quelle
2

Klicken Sie mit der rechten Maustaste auf * .xaml und klicken Sie auf Eigenschaften, und ändern Sie den Wert für "Benutzerdefiniertes Tool" in "MSBuild: UpdateDesignTimeXaml". Ändern Sie als nächstes die Eigenschaften für "Build-Aktion" in " Eingebettete Ressource ". Das Erstellen des Projekts funktioniert.

Ali Yousefi
quelle
2

Sehr einfache Lösung, die für mich funktioniert hat:

  • Kopieren Sie den Inhalt der xaml / cs-Datei
  • Löschen Sie die xaml / cs-Datei
  • Erstellen Sie eine neue Klasse und fügen Sie den Inhalt ein

Jetzt wird die Funktion InitializeComponent () ohne rote Unterstreichung angezeigt.

Hoffe das hilft jemandem.

Samir Tamri
quelle
Ja, ich habe das gleiche gefunden. Nichts hat geklappt. Schließlich war es die einzige Lösung, den Inhalt zu kopieren, die Dateien vollständig zu löschen und von Grund auf neu hinzuzufügen.
Rob_James
2

Überprüfen Sie den Klassennamen ordnungsgemäß.

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="{AppName}.{ClassName}">
</ContentPage>

Der Klassenname sollte eine Kombination aus App-Name und Teilklassenname sein

Anuruddha Thennakoon
quelle
1

Dieses Problem tritt auf, wenn die Lösungsprojekte auf die Version 1.4.0.0 der DLLs "Xamarin.Forms.Core", "Xamarin.Forms.Xaml" und "Xamarin.Forms.Platform" Version 1.0.0.0 verweisen.

Um es zu lösen, musste ich ein Downgrade auf Version 1.3.3.0 der DLLs durchführen, aber mit dieser Version existiert Xamarin.Forms.Platform 1.0.0.0 nicht.

Pulcker
quelle
1

Überprüfen Sie die Version des Xamarin.Forms-Pakets, auf das in Ihrem Projekt verwiesen wird.

.csproj-Datei Xamarin.Forms Nuget-Paket

user1412699
quelle
Diese Antwort funktionierte, entladen Sie Fehler mit proj und bearbeiten Sie die .csproj-Datei, um die Xamarin-Version zu haben, die Sie im Paketordner haben
Shalin
1

Ich hatte ab und zu das gleiche Problem, und das habe ich getan, um es zu beheben: Wenn ich im PCL-Projekt bin, füge ich dem Projekt eine neue plattformübergreifende XAML-Seite hinzu. Das Hinzufügen einer neuen XAML-Seite dauert einige Sekunden, bis die Verweise auf "hook" vorliegen. Nachdem die neue XAML-Seite erfolgreich zum Projekt hinzugefügt wurde, werden die roten Unterstreichungen auf den XAML-Seiten (mit Problemen) gelöscht. Sobald das Problem behoben ist, lösche ich einfach die XAML-Datei, die ich gerade hinzugefügt habe. - Zusammenfassend hat das Hinzufügen einer neuen XAML-Seite und das anschließende Löschen das Problem für mich gelöst.

Zinkzink
quelle
1

Ich habe gerade alle Pakete aktualisiert , funktioniert gut.

Arun Prasad ES
quelle
1

Ändern Sie die Seiteneigenschaften in:

BuildAction => Embedded resource 
CustomTools => MSBuild:UpdateDesignTimeXaml
M. Hamza Rajput
quelle
1

Ich hatte ein Caching-Problem, als ich auf diesen Fehler stieß.

Um dies zu beheben, deinstallieren Sie einfach die letzte Version des Xamarin.Forms-Pakets und installieren Sie eine frühere Arbeitsversion neu.

Wenn die Neuerstellung erfolgreich ist, aktualisieren Sie das Paket erneut auf die neueste Version.

Ali Yousefi
quelle
1

Es scheint, dass dies durch viele Dinge verursacht wird. Wenn Sie all dies gelesen und noch nicht gelöst haben:

Meins wurde dadurch verursacht, dass die Lösungskonfiguration auf Release gesetzt wurde . Geändert zu Debug und Fehler behoben.

Phil P.
quelle
0

In meinem Fall war das Problem der Projektpfad. Die generierte Codedatei erhält einen Namen einschließlich des absoluten Pfads, der codiert wurde, um einen gültigen Dateinamen zu erhalten. Der Pfad war "D: \ Projekt C # \ ProjectRootFolder \ Project". Der vom Build-Tool generierte Dateiname war "Project.Droid.D_.Projekt_C_. Namespace etc." Das Verschieben des Projekts in einen Pfad wie "D: \ project \ ProjectRootFolder" hat in meinem Fall geholfen.

Denis Reichelt
quelle
0

Ich verwende Visual Studio 2015, habe das gleiche Problem und keine der Antworten im Internet war eine vollständige Lösung. Hier erkläre ich, was bei mir funktioniert hat.

Mein primäres Ziel hier war es, die rote Fehlermeldung zu beseitigen, die immer wieder auftauchte

Der Name InitializeComponentexistiert im aktuellen Kontext nicht

Grundsätzlich habe ich eine Funktion namens aufgerufen InitializeComponent2(), die genau das Gleiche tut wie diese InitializeComponent()und stattdessen den Code für buchstäblich kopiert InitializeComponent(). Macht den Job.

Es sieht so aus (und ich werde es erklären):

[System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")]
private void InitializeComponent2()
{
    // Change to:
    //   this.LoadFromXaml(typeof(Page2)); // for Page2
    //   this.LoadFromXaml(typeof(Page3)); // for Page3
    // and put
    //   using Xamarin.Forms.Xaml;
    // at the top of each source file.
    this.LoadFromXaml(typeof(Page1));
}

Fügen Sie die Funktion in die Definition jeder Ihrer Seiten ( .csDateien) ein, z

public partial class Page1 : ContentPage
{
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")]
    private void InitializeComponent2()
    {
        // Change to:
        //   this.LoadFromXaml(typeof(Page2)); // for Page2
        //   this.LoadFromXaml(typeof(Page3)); // for Page3
        // and put 
        //   using Xamarin.Forms.Xaml; 
        // at the top of each source file.
        this.LoadFromXaml(typeof(Page1));
    }
}

Außerdem müssen Sie using Xamarin.Forms.Xaml;oben auf jeder .csSeite, wo verwendet LoadFromXaml(..)wird, einfügen.

Und dann wechseln Sie natürlich InitializeComponent()zu InitializeComponent2(), um die neue Funktion aufzurufen. Das heißt, Sie haben die Funktion in den gleichen Kontext wie die Seite gestellt, auf der der Fehler behoben wurde. Ich kann mir nicht vorstellen, dass der eigentlichen InitializeComponentFunktion beim Ändern Ihres Projekts etwas hinzugefügt wird, aber das ist eine Möglichkeit. Bisher war es gut für mich.

Ich habe viele Dinge ausprobiert, die Build-Aktion, den XAML-Namespace geändert, vs neu gestartet, bereinigt + neu erstellt und nach NuGet-Paket-Updates gesucht.

Grundsätzlich hat Visual Studio das Programm auf meinem Android-Gerät + Emulator kompiliert und ausgeführt, aber diese Fehlermeldung würde nicht verschwinden. Meine Lösung ist für Android, kann aber auch für iOS usw. funktionieren.

Ich bin zum Grund des Problems zurückgekehrt. InitializeComponent()Der eigentliche Code für diese Funktion wird in einer Datei namens <Your Project Name>.Page1.xaml.g.csoder Page2.xaml.g.csbeispielsweise generiert . Es (die Datei) wird jedoch nur generiert, wenn ein bestimmtes Ereignis ausgelöst wird. Ich hatte das Glück, es zu entdecken, indem ich Text in "Custom Tool Namespace", der dieses Ereignis auslöste, für eine der xaml-Seiten (eine Datei .xaml, die mit not endet .cs- stellen Sie sicher, dass Sie die .xamlDatei ausgewählt haben) eingab, Text eintippte und die Eingabetaste und drückte Die Datei wird erstellt.

Dann hatte ich die großartige Idee InitializeComponent2(), eine Funktion zu InitializeComponent()erstellen , die genau der gleichen entspricht, und sie in jede cs-Datei einzufügen, damit sie existiert, ohne dass .xaml.g.csjedes Mal generiert werden muss, wenn der Fehler behoben werden soll.

Dougie
quelle
0

Ich weiß nicht, ob dies gelöst ist, aber für mich musste ich nur die erste Zeile der XAML entfernen ("xml version =" 1.0 "encoding =" utf-8 ").

Manchmal versucht die Versionskontrolle der Quelle, den Dateityp zu identifizieren und solche Dinge hinzuzufügen.

Miguel Laborde
quelle
0

hinzufügen using Xamarin.Forms.Xaml

getestet auf Visual Studio 2017

TheFranzMaster
quelle
0
  1. Wählen Sie das App.xamlundMainPage.xaml -Datei der Klasse aus, in der das Problem vorliegt.
  2. Klicken Sie mit der rechten Maustaste und wählen Sie Eigenschaften aus.
  3. Wählen Sie in der Aktion "Erstellen" die Option "Eingebettete Ressource" aus.
  4. Geben Sie im benutzerdefinierten Werkzeug " MSBuild:UpdateDesignTimeXaml"
  5. Sauber und bauen und es war weg.
Endrit
quelle
0

Die ultimative Lösung wäre, die Projektdatei in einem Texteditor zu bearbeiten und das Muster einfach aus einer anderen nicht widersprüchlichen Datei zu kopieren. Diese Lösung hat bei mir funktioniert. Normalerweise würden Sie nach dieser Syntax suchen:

<Compile Update="Your\Path\YourContentPage.xaml.cs">
  <DependentUpon>YourContentPage.xaml</DependentUpon>
</Compile>
mr5
quelle
0

Nur in Xaml-Seiteneigenschaften festlegen
Build Action = Embedded resource
Es funktioniert in Visual Studio 2017.

Saleem Kalro
quelle