Xamarin Android-Comment reconstruire une ressource.designer.cs
dans Xamarin Android - Comment régénérer la ressource.designer.cs
j'ai essayé de marquer toute L'Action de construction du fichier XML comme "AndroidResource" et toujours la ressource.designer.cs ne sera pas mis à jour avec de nouvelles valeurs.
quel déclencheur d'événement génère ce fichier?
14 réponses
J'ai trouvé que Xamarin studio va arrêter de régénérer le fichier de ressources en raison de changements dans le fichier de projet. Le groupe de propriété de la construction supérieure devrait 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. Si vous ouvrez le csproj du projet Android avec un éditeur de texte et ajouter ces entrées, cela semble fonctionner. J'ai pris ces entrées d'un nouveau projet que J'ai créé dans Xamarin Studio qui fonctionnait, ce qui est probablement la façon la plus facile de faire ce.
aussi récemment que Xamarin Studio 5.6 (build 273) avec Xamarin.Android 4.18.0, si vous avez supprimé manuellement le Resource.designer.cs
fichier du projet, la reconstruction de régénérer Resource.designer.cs
, mais ajouter dans le projet. Donc, après avoir tenté de reconstruire une fois, le fichier est présent dans le système de fichiers, mais pas dans le projet. Pour corriger cela, ajoutez manuellement le nouveau fichier généré dans le dossier Ressources du projet.
1.Cliquez Sur La Ressource.designer.fichier cs de votre projet.
2.Click CTRL+A (Select All)
3.Cliquez sur Suppr (Supprimer tout)
4.Nettoyez et reconstruisez votre projet (si vous recevez un message pour une ressource modifiée.designer.cs cliquez sur "Oui pour Tout").
vous obtenez maintenant une erreur pour les premiers bâtiments. mais votre Ressource.designer.le fichier cs est régénéré.vous pouvez maintenant construire. ses œuvres.
j'ai résolu ce problème en retirant le caractère "-" du nom des images dans le dossier dessinable.
Il semblerait que cela peut se produire pour un certain nombre de raisons. Une étape qui peut aider à révéler le problème est d'augmenter votre verbosité de sortie de construction dans Visual studio: Outils -> Options -> construire et exécuter -> changer la "verbosité de sortie de construction du projet MSBuild" en "Diagnostic".
dans mon cas, l'un de mes contrôles n'avait pas de Id, donc il a conduit à la ressource.Designer.cs pas de mise à jour (mais ne pas le faire en silence).
le fichier a démarré mise à jour une fois de plus j'ai ajouté un Id.
NOTE: vous voudrez probablement changer la verbosité de sortie de construction de nouveau à la normale après avoir trouvé votre problème.
C'est plus facile qu'il n'y paraît...
http://docs.xamarin.com/recipes/android/general/projects/specify_default_namespace/
vous pouvez renommer votre projet en utilisant find / replace, mais le fichier de ressources utilisera ce qui est défini pour' namespace par défaut ' dans les paramètres principaux et continuera à revenir à ce nom même si vous éditez manuellement la ressource.designer.fichier cs dans ou hors de Xamarin.
La Ressource.designer.le dossier cs sera mis à jour comme @Brendan Zagaeski l'a mentionné.
cependant, comme il semble que cela n'a pas résolu votre problème, il semble que Xamarin n'a reconnu aucun des changements que vous avez fait. Au moins, c'est ce qui m'est arrivé.
j'ai fini par le résoudre par renommer le dossier "Layout" généré en "layout" (j'ai fait la même chose pour le drawable et les valeurs). Après cela, juste en construisant le projet à nouveau la ressource.Mise à jour du concepteur réussi.
Espérons que cela aide quelqu'un.
method1: Supprimer le fichier du projet et également de supprimer de la corbeille et les fichiers obj et ensuite construire le projet, il doit travailler à 100% comme je l'ai utiliser pour le faire si je suis face au même problème si cela ne fonctionne pas toujours, il y a une autre option
method2: fermer la demande I. e, visual studio, map to c-> utilisateurs-> -> AppData (Fichier Caché) -> supprimer xamarin fichier de locaux et d'itinérance
cela m'est arrivé plusieurs fois, et à chaque fois le problème ne provenait pas de la génération du fichier lui-même, mais d'une ressource android mal formée. Donc, si cela se produit après que vous ayez fusionné quelque chose de votre dépôt, Vérifiez deux fois vos ressources android (couleurs, chaînes de caractères, etc.), pour tout code XML malformé.
pour que la solution de projet de reconstruction fonctionne, vous devez éditer le fichier qui le génère et ensuite reconstruire le projet.
j'ai eu exactement le même problème et aucune réponse ne travaillaient ici. Finalement, j'ai compris que j'avais des références d'image dans certains layouts qui n'existaient pas encore. Il semble que si vous avez un chemin source cassé, ressource.Designer.cs arrête la mise à jour sans erreur. Finalement, après avoir enlevé les images de référence, le problème a été résolu et la ressource.Designer.cs s'est mis à jour.
J'espère que cela aidera quelqu'un!
pour les personnes qui ont encore ce problème, quand vous regardez la liste des erreurs, une erreur peut dire quelque chose comme "aucune ressource trouvée qui correspond au 'toRightOf @id/(nom de la ressource)' (ou à toute autre position dans la mise en page relative)... vous devez mettre en surbrillance tout le code de la ressource (dans le fichier axml) qui a l'id, couper, enregistrer tout, puis le coller et reconstruit... puis votre ressource.Designer.cs va se régénérer! espérons que cela aide.
L'généré Resources.designer.cs
classe sera mise à jour si vous reconstruisez votre projet.
Vous pouvez trouver cette information à: http://docs.xamarin.com/guides/android/getting_started/hello%2C_world