Ouarzy's Blog

Ouarzy's Blog

La revanche de l'assembly System.Windows

Ce message vous empêche de dormir?

 

Impossible de charger le fichier ou l'assembly 'System.Windows,
Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' ou une de
ses dépendances. Le fichier spécifié est introuvable.

 

 

Et vous avez déjà lu cet article sans parvenir à régler votre problème?

C'est en tout cas le problème que j'ai eu lorsque mes sites de production ont lentement migré vers SL5.

 

 

En effet la version de la DLL, 'System.Windows' ayant changée, le problème est réapparu. Seulement cette fois ci l'opération de gacutil.exe devient plus compliquée, car il faut une version de gacutil  suffisamment récente pour enregistrer une dll du framework Silverlight 5...

 

 

Le vrai problème

 

Je me suis donc replongé dans le sujet pour mieux comprendre la base de ce problème. Et la vraie question c'est de savoir POURQUOI il essaye de référencer cette DLL qui existe déja théoriquement?

 

 

La vraie raison

 

L'assembly System.Windows existe à la fois dans .NET et dans Silverlight (ce n'est d'ailleurs pas la seule). Un problème se pose donc lorsqu'on utilise des dll Silverlight dans un projet .NET.

 

 

La simple solution

 

Si votre projet .NET a réellement besoin de ces références Silverlight, il faut créer deux projets. L'un compilé en Silverlight. L'autre qui contient seulement des liens vers les fichiers du projet Silverlight,  mais cette fois-ci compilé en .NET. (utiliser l'ajout d'un fichier existant avec l'option "add as a link")

 

 

Vous obtenez ainsi, avec un seul fichier source, une DLL pur Silverlight à utiliser dans vos projet SL, et une DLL pur .NET à utiliser dans les projets .NET.

 

 

Mais le plus souvent il faut se demander si cette dépendance est vraiment nécessaire. En l'occurrence pour un projet Silverlight, on peut facilement retrouver des DLL SL référencées dans le site web (qui est lui compilé en .NET).

Il y'a notamment des librairies (comme Telerik) qui vont automatiquement ajouter ce genre de dépendance qui sont en fait totalement inutile.

 

Dans mon cas il m'a donc suffi de supprimer ces dépendances dans mon projet web pour ne plus avoir l'erreur.

 

En espérant vous avoir aidé à mieux dormir!

 

 



09/08/2012
0 Poster un commentaire
Ces blogs de Informatique & Internet pourraient vous intéresser