web-dev-qa-db-fra.com

Xamarin Android - Comment reconstruire Resource.designer.cs

Dans Xamarin Android - Comment régénérer le Resource.designer.cs

J'ai essayé de marquer toutes les actions de construction du fichier XML comme "AndroidResource" et le fichier Resource.designer.cs ne sera toujours pas mis à jour avec de nouvelles valeurs.

Quel événement déclencheur générer ce fichier?

39
Karthik Murugesan

J'ai constaté que Xamarin studio cesserait de régénérer le fichier Resources en raison de modifications apportées au fichier de projet. Le groupe de construction supérieur, PropertyGroup, doit contenir des entrées pour

<RootNamespace>**Your_Root_Namespace**</RootNamespace>
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
<AndroidUseLatestPlatformSdk>True</AndroidUseLatestPlatformSdk>
<AndroidApplication>True</AndroidApplication>
<AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
<AndroidResgenClass>Resource</AndroidResgenClass>
<TargetFrameworkVersion>*your value here*</TargetFrameworkVersion>

et pour une raison quelconque, ils disparaissent tout simplement. Si vous ouvrez le fichier csproj du projet Android avec un éditeur de texte et ajoutez ces entrées, cela semble fonctionner. J'ai récupéré ces entrées dans un nouveau projet que j'ai créé dans Xamarin Studio et qui fonctionnait, ce qui est probablement le moyen le plus simple de le faire.

12
AlexC

Aussi récemment que Xamarin Studio 5.6 (version 273) avec Xamarin.Android 4.18.0, si vous avez supprimé manuellement le fichier Resource.designer.cs du projet, la reconstruction régénérera Resource.designer.cs, mais non l'ajoutera au projet. Ainsi, après avoir tenté de reconstruire une fois, le fichier sera présent dans le système de fichiers, mais pas dans le projet. Pour résoudre ce problème, ajoutez manuellement le fichier nouvellement généré dans le dossier Ressources du projet.

51
Brendan Zagaeski

1.Cliquez sur le fichier Resource.designer.cs dans votre projet.

2.Cliquez sur CTRL + A (Tout sélectionner)

3.Cliquez sur Suppr (Supprimer tout)

4.Nettoyez et reconstruisez votre projet (si vous recevez un message pour Resource.designer.cs modifié, cliquez sur le bouton "Oui pour tout").

vous obtenez maintenant une erreur pour les premiers bâtiments. mais votre fichier Resource.designer.cs est régénéré. Vous pouvez maintenant effectuer une deuxième construction. ça marche.

11
Ali Yousefie

J'ai résolu ce problème en supprimant le caractère "-" du nom des images dans le dossier Drawable.

5
chlara

Il semblerait que cela puisse se produire pour plusieurs raisons. Une étape permettant de révéler le problème consiste à augmenter la verbosité de votre sortie de construction dans Visual studio: Outils -> Options -> Construire et exécuter -> changez le "verbosité de sortie du projet MSBuild" en "Diagnostic". 

Dans mon cas, l'un de mes contrôles n'avait pas d'identifiant, ce qui a conduit Resource.Designer.cs à ne pas se mettre à jour (mais sans le faire en silence) .  enter image description here

Le fichier a recommencé à se mettre à jour une fois que j'ai ajouté un identifiant.

REMARQUE: vous souhaiterez probablement redéfinir la verbosité de sortie de la génération après avoir trouvé votre problème.

3
DevOragz

Le dossier Resource.designer.cs serait mis à jour comme l'a mentionné @Brendan Zagaeski.

Cependant, comme il semble que cela n'a pas résolu votre problème, il semble que Xamarin n'ait reconnu aucun des changements apportés. Au moins c'est ce qui m'est arrivé. 

J'ai fini par le résoudre en renommer le dossier "Layout" généré en "layout" (j'ai fait de même pour drawable et les valeurs). Après cela, il suffit de reconstruire le projet pour que le Resource.Designer soit correctement mis à jour. 

J'espère que ça aide quelqu'un.

1
YKa

method1: Supprimez le fichier du projet et supprimez également les fichiers bin et obj, puis construisez le projet. Il devrait fonctionner à 100% de la même manière que si je rencontrais le même problème si cela ne fonctionnait pas toujours. option

méthode2: fermer l'application i.e, visual studio, mapper vers c-> utilisateurs-> -> AppData (fichier masqué) -> supprimer le fichier xamarin de l'utilisateur local et itinérant

1
ROHIT MANDALAPU

Cela m'est arrivé plusieurs fois, et chaque fois que le problème ne provenait pas de la génération du fichier lui-même, mais d'une ressource Android mal formée . Si cela se produit après la fusion de quelque chose de votre référentiel, vérifiez votre ressources (couleurs, chaînes, etc.), pour tout code XML mal formé.

1
Miiite

Assurez-vous que le nom de votre paquet racine est correct. 

1
ComeIn

C'est plus facile qu'il n'y parait ...

http://docs.xamarin.com/recipes/Android/general/projects/specify_default_namespace/

Vous pouvez renommer votre projet en utilisant rechercher/remplacer, mais le fichier de ressources utilisera tout ce qui est défini pour "espace de noms par défaut" dans les paramètres principaux et continuera à revenir à ce nom même si vous modifiez manuellement le fichier Resource.designer.cs ou hors de Xamarin.

1
The Kirk

J'avais exactement le même problème et aucune des réponses ici ne fonctionnait. Enfin, je me suis dit que certaines mises en page n’existaient pas encore dans certaines images. Il semble que si le chemin source est cassé, Resource.Designer.cs arrête la mise à jour sans erreur. Enfin, après avoir supprimé les images de référence, le problème a été résolu et le fichier Resource.Designer.cs a été mis à jour. 

J'espère que cela aide quelqu'un!

0
sguler

Pour que la solution de reconstruction fonctionne, vous devez éditer le fichier qui la génère, puis reconstruire le projet.

0
Marco Castanheira

Pour les personnes toujours confrontées à ce problème, lorsque vous consultez la liste des erreurs, une erreur peut indiquer quelque chose comme "aucune ressource trouvée qui correspond à la donnée" toRightOf @ id/(nom de la ressource) "(ou toute autre position dans la présentation relative ) ... vous devez mettre en surbrillance tout le code de la ressource (dans le fichier axml) qui a l'identifiant, couper, sauvegarder tout, puis le coller et le reconstruire ... alors votre Resource.Designer.cs se régénérera! espérons qu'il vous aidera .

0
Osman Guerrero