Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Arnaud Auroux


Silverlight, let there be light...
[Silverlight] Problème de références avec les templates du Silverlight unit test framework

Présenté lors du MIX 2008 à Las Vegas par Scott Guthrie, le Silverlight unit test framework est une solution flexible et puissante de test pour des composants Silverlight. Afin de faciliter la mise en place des tests dans vos applications Silverlight, des templates de projets ont été mis au point. Ces templates permettent de créer un projet avec un exemple de classe de tests ainsi que les références pour utiliser le framework.

Néanmoins lors de ma première utilisation de ce template, il s'est avéré que les références vers le framework de test étaient incorrectes :

Sans titre 

Si on regarde les propriétés de la référence "Microsoft.Silverlight.Testing" :

Sans titre 

On voit que la valeur de l'attribut "Specific Version" est à "True", c'est la valeur par défaut. Ce booléen indique comment retrouver le nom complet de l'assembly, i.e. est-ce que la version, la culture et le jeton de clé publique doivent être inclus ?

Continuons notre investigation en concentrant notre attention sur le fichier de projet (extension ".csproj") du template. A cet emplacement :

%userprofile%\Documents\Visual Studio 2008\Templates\ProjectTemplates\Visual C#

doit normalement se trouver un fichier de type "zip" nommé "SilverlightTestProject_CSharp.zip" qui contient les fichiers du template pour la version C# et dont notamment le fichier de projet qui sera utilisé lors de la création d'un nouveau projet de test :

Sans titre 

Si on ouvre ce fichier directement à partir de l'archive et que l'on se rend au niveau du noeud "ItemGroup" qui contient les informations relatives au différentes références du projets, on retrouve les 2 références inhérentes à un projet de test Silverlight :

  • Microsoft.Silverlight.Testing :

<Reference Include="Microsoft.Silverlight.Testing, Version=2.0.20930.1042, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />

  • Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight :

<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight, Version=2.0.20930.1042, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />

On peut noter l'existence d'un attribut "Version" pour chacune des deux références. Cet attribut correspond à la version de l'assembly du framework de test qui sera utilisée dans le projet. Or si l'on consulte les propriétés de ces 2 assemblies en nous rendant à leur emplacement (chez moi cela revient à : C:\Program Files (x86)\Microsoft SDKs\Silverlight\v2.0\Libraries\Client) et en faisant clic droit -> Propriétés -> Détails :

Sans titre

Sans titre

On se rend compte que les numéros de version ne correspondent pas. Pour résumé, le template du projet de test utilise une référence vers l'assembly nommé "Microsoft.Silverlight.Testing" de version 2.0.20930.1042 ainsi que l'assembly "Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight" de version 2.0.20930.1042. Le problème est que ces assemblies n'existent pas sur la machine (avec la dernière version du framework), plus précisément les versions requises n'existent pas.

Ainsi pour corriger le problème, il suffit de mettre le bon numéro de version pour chaque assembly dans le fichier "SilverlightTestProject.csproj" ce qui donne :

  • Microsoft.Silverlight.Testing :

<Reference Include="Microsoft.Silverlight.Testing, Version=2.0.21103.1925, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />

  • Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight :

<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight, Version=2.0.21024.1838, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />

 

Un petit refresh sur la solution et cette fois-ci, on voit que nos références sont correctes ! :

Sans titre

Enjoy :)

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 7 avril 2009 00:30 par Arnaud Auroux

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Créer un périphérique Windows To Go 10 ! par Blog de Jérémy Jeanson le 11-21-2014, 04:54

- RDV à Genève le 12 décembre pour l’évènement “SharePoint–Office 365 : des pratiques pour une meilleure productivité !” par Le blog de Patrick [MVP Office 365] le 11-19-2014, 10:40

- [IIS] Erreurs web personnalisées par Blog de Jérémy Jeanson le 11-19-2014, 00:00

- BDD/TDD + Javascript par Fathi Bellahcene le 11-16-2014, 16:57

- Sécuriser sans stocker de mots de passe par Blog de Jérémy Jeanson le 11-15-2014, 08:58

- Où télécharger la preview de Visual Studio 2015 ? par Blog de Jérémy Jeanson le 11-13-2014, 21:33

- Les cartes sont partout ! par Le blog de Patrick [MVP Office 365] le 11-13-2014, 17:26

- [ #Office365 ] Courrier basse priorité ! par Le blog de Patrick [MVP Office 365] le 11-12-2014, 08:56

- [Oracle] Fichier oranfsodm12.dll absent du package client par Blog de Jérémy Jeanson le 11-10-2014, 20:44

- [ #Office365 ] Le chapitre 1 des Groupes est écrit, et alors ? par Le blog de Patrick [MVP Office 365] le 11-10-2014, 20:23