Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

VS 2013 Bug XAML, des solutions à essayer

[new:25/02/2014]Visual Studio est toujours de plus en plus riche et de plus en sophistiqué, la version 2013 n’échappe pas à la règle. Et plus un logiciel grossit plus il y a de bugs, même produit par les meilleures équipes… Il y a quelques bugs qui touchent XAML dans VS2013 mais l’un deux est assez gênant…

Les symptômes

L’un des bugs le plus gênant est celui qui concerne le designer visuel et le code XAML.

Reproduction : Créez un projet Windows Phone 8 de base, VS ouvre alors le designer visuel à gauche et le code à droite. Tout est ok, forcément c’est le template et nous n’avons rien fait … Fermez le projet en acceptant de le sauvegarder. On rouvre le projet… Et là… Boom ! Le designer visuel n’affiche plus la simulation mais un message indiquant que le code Xaml n’est pas valide !

Regardons le code : il y a des trucs soulignés partout. Des espaces de noms seraient manquant, voire des propriétés aussi.

Bref c’est le souk. On fait un Rebuild. La compilation passe sans problème mais le problème subsiste.

Vraiment très embêtant.

Les solutions

Sur les listes de diffusion NDA des MVP Client Dev nous avons été plusieurs à remarquer ce bug. Bien entendu grâce à cette liste nous avons des contacts avec Microsoft qui est donc au courant de ce problème inconnu de l’équipe VS jusqu’à maintenant. On a donc bon espoir que le bug soit réglé dans une prochaine mise à jour.

Mais d’ici là comment faire ?

Nous avons deux propositions, pour certains une est suffisante, pour d’autres il faut appliquer les deux.

Le “.suo”

Ce fichier est caché par défaut, il faut changer les propriétés d’affichage de l’explorateur de Windows pour le voir. Il est créé avec les fichiers de la Solution (et non des projets). C’est là qu’il faut le chercher.

Cette première solution consiste donc à supprimer ce fichier avant de rouvrir le projet (la Solution plus exactement).

Bien entendu ce fichier étant créé systématiquement à la fermeture d’une Solution il faut penser à la détruire à chaque fois qu’on rouvre celle-ci…

Si cela ne fait rien, il faut passer à la seconde solution.

Le cache temporaire

Une solution plus radicale qui semble mieux marcher consiste à supprimer le cache temporaire géré par VS 2013 avant de rouvrir une Solution qui présente le problème.

L’emplacement par défaut est le suivant :

C:\Users\username\AppData\Local\Temp\AssemblyDataCache

Il suffit de supprimer tout le contenu.

Je conseille la création d’un raccourci sur le bureau qui appellera un petit Batch qui fera le ménage et ouvrira VS2013 dans la foulée. En passant systématiquement par ce Batch on évite de se prendre la tête.

On notera qu’une fois sous VS, si on ferme un projet en cours et qu’on rouvre l’un de ceux posant problème il sera peut être nécessaire de ressortir de VS et de relancer le Batch qui fait le ménage.

Conclusion

Rien n’est pas parfait ici bas et nous sommes les premiers à savoir qu’un logiciel ne peut être totalement exempt de bugs… Alors ne jetons pas la pierre à l’excellente équipe de VS 2013, et profitons des recherches des MVP pour régler certains problèmes dans l’attente de leur correction…

Bon Dev… Et Stay Tuned !

blog comments powered by Disqus