2017-10-14 3 views
4

utilisant VS 2017 15.4.0Des éléments "EmbeddedResource" en double ont été inclus après la migration vers .NET Standard?

Après James Montemagno "Mise à niveau vers Xamarin.Forms Standard .NET"

https://channel9.msdn.com/Shows/XamarinShow/Snack-Pack-15-Upgrading-to-XamarinForms-to-NET-Standard?ocid=player

Lorsque vous essayez de nettoyer/Construire Je reçois l'erreur:

Gravité Code Description Projet Suppression de la ligne du fichier État Erreur Duplication Les éléments 'EmbeddedResource' ont été inclus. Le SDK .NET inclut les éléments 'EmbeddedResource' de votre répertoire de projet par défaut. Vous pouvez supprimer ces éléments de votre fichier de projet ou définir la propriété 'EnableDefaultEmbeddedResourceItems' sur 'false' si vous souhaitez les inclure explicitement dans votre fichier de projet. Pour plus d'informations, voir https://aka.ms/sdkimplicititems. Les éléments en double étaient: 'App.xaml'; 'MainPage.xaml' App5.core C: \ Program Files \ dotnet \ sdk \ 2.0.2 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.NET.Sdk.DefaultItems.targets 274

Une solution s'il vous plaît?

Répondre

0

Essayez de nettoyer manuellement ces étapes:

  • Fermez votre VS
  • supprimer bin et obj dossiers de iOS, Android et le dossier Common (Votre nom du projet).
  • supprimer tout le contenu du dossier packages
  • ouvrir un terminal, accédez à vos projets de dossier et tapez nuget locals all -clear
  • puis tapez nuget restore

et enfin ouvert VS à nouveau et laissez-moi savoir si le problème encore eXISTE

5

trouvé la solution ... Faites un clic droit sur le nouveau projet standard .NET J'ai créé « App5 » et choisissez Modifier App5.csproj J'ai supprimé le code de la fichier et l'erreur disparue.

 <ItemGroup> 
    <EmbeddedResource Include="App.xaml"> 
    <Generator>MSBuild:UpdateDesignTimeXaml</Generator> 
    </EmbeddedResource> 
    <EmbeddedResource Include="MainPage.xaml"> 
    <Generator>MSBuild:UpdateDesignTimeXaml</Generator> 
    </EmbeddedResource> 
</ItemGroup> 
+0

Cela a fonctionné, mais je me demande pourquoi. Comment le projet peut-il trouver les éléments lorsqu'ils ne sont pas répertoriés dans le fichier de projet? – modiX

+0

Il comprend essentiellement tous les éléments à l'intérieur du répertoire sauf mention contraire pour exclure l'élément spécifique. –

3

Selon bugzilla de Xamarin à un moment donné vous ont été nécessaire d'insérer pour le faire fonctionner avec le nouveau format de csproj.

<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> 

Source

J'imagine que Xamarin a décidé d'ajouter que les objectifs de construction par défaut maintenant.

Donc, pour le fixer vous devez faire ce qui suit:

  • Ouvrez votre fichier .csproj partagé.

  • Supprimer tous les Itemgroups liés à l'ajout de pages XAML et * .cs

  • propre + reconstruction.

+0

Le remplacement de cette pièce n'a pas résolu le problème pour moi, la solution AG70 a fonctionné pour moi. – modiX

+0

"Supprimer tous les groupes d'objets liés à l'ajout de pages xaml"? c'est exactement ce qu'il fait aussi – Dbl