2017-07-25 4 views
0

Ich fügte zwei Seiten mit "Add \ New Item" und wählen Sie "Content Page".Xamarin Forms + VS2017 + NETStandard: XAML und Code hinter sind nicht gruppiert

Der XAML und der Code dahinter sind nicht gruppiert, die .cs sollten vom XAML abhängen.

Ist dies ein bekanntes Problem in VS 2017? Ich habe viel Zeit damit verbracht, Werkzeuge zu aktualisieren, nur um festzustellen, dass dies nicht funktioniert .... Ich hoffe, es ist ein Problem bei meiner lokalen Installation.

Kann jemand bitte bestätigen?

enter image description here

Antwort

2

Dies wird durch die neue Art und Weise verursacht die CSPROJ Datei funktioniert, wenn Sie .NET Standard-wechseln. Anstatt jede einzelne Datei einzuschließen und zu beschreiben, wie jede Datei geschachtelt werden sollte, besteht die neue Vorgehensweise darin, nur Dateien explizit zu berücksichtigen, die Sie ignorieren möchten, und Platzhalter zu verwenden, um z. B. alle Dateien eines ähnlichen Typs zu verschachteln.

Also das Problem beheben Sie die folgende Methode verwenden kann, die ich von this Website gefunden, fügen Sie einfach die folgenden .NET CSPROJ Datei Standard-Projekt und entfernen Sie alle expliziten Linien enthalten, die Sie übrig bleiben oder dass hinzugefügt, nachdem die Dinge über die .NET-Standard-bewegend:

<ItemGroup> 
    <!-- https://bugzilla.xamarin.com/show_bug.cgi?id=55591 --> 
    <None Remove="**\*.xaml" /> 

    <Compile Update="**\*.xaml.cs" DependentUpon="%(Filename)" /> 
    <EmbeddedResource Include="**\*.xaml" SubType="Designer" Generator="MSBuild:UpdateDesignTimeXaml" /> 
</ItemGroup> 

Also, was die oben sagt, ist:

  • entfernen Sie alle .xaml Dateien
  • hinzufügen alle .xaml.cs Dateien in das Projekt, das ihre Build Action-Compile und sie auf den Dateinamen der Datei abhängig machen (ohne die Erweiterung) hinzugefügt wird
  • schließlich alle der .xaml hinzufügen Dateien zum Projekt, setzen Sie ihre Build Action auf EmbeddedResource und setzen Sie ihre Custom Tool Eigenschaft auf MSBuild:UpdateDesignTimeXaml.

Dies repliziert, wie die alte CSPROJ Datei jede einzelne Datei beschreiben würde aber nur verwendet Platzhalter, dass jede Datei muss nicht aufgeführt werden.

Wenn Sie auch ReSharper verwenden, verhindert ein Fehler, dass Intellisense funktioniert, ein Fehlerbericht kann here gefunden werden. Eine Lösung dieses Problems, das wurde erwähnt, war XAML IntelliSense Handhabung zu Visual Studio statt Reshaper zu geben (obwohl dies nicht in vollem Umfang das Problem für mich fix):

Showing ReSharper Intellisense Settings Window

+1

Vielen Dank !! Ich bin nicht zu NETStandard migriert, ich habe ein Projekt von Grund auf neu erstellt. Lassen Sie mich das .csproj bearbeiten und sehen, wie es funktioniert. –

Verwandte Themen