132 votes

Erreur CS1705 : "qui a une version supérieure à l'assemblage référencé".

Je me suis penché sur la question depuis un certain temps déjà et je n'ai pas réussi à la résoudre. Je reçois le message d'erreur suivant :

Compiler Error Message: CS1705: Assembly 'My.Model, Version=1.1.4422.23773, Culture=neutral, 
PublicKeyToken=bfde95ba233094b2' uses 
'Common, Version=3.3.4273.24368, Culture=neutral, PublicKeyToken=bfde95ba233094b2' 
which has a higher version than referenced assembly
'Common, Version=3.3.4269.17112, Culture=neutral, PublicKeyToken=bfde95ba233094b2'

c:\WINDOWS\assembly\GAC_MSIL\Common\3.3.4269.17112__bfde95ba233094b2\Common.dll: 
(Location of symbol related to previous error)

Le serveur web fonctionne sous Server 2003. Je suis allé à c : \windows\assembly et j'ai remarqué qu'il y avait 3 versions de Common.dll. La version la plus élevée était 3.3.4269.17112.

J'ai copié la dll avec la version : 3.3.4273.24368 dans le répertoire d'assemblage. J'ai ensuite recompilé et redéployé mon code (probablement trop, mais bon). Lorsque j'ai ouvert mon navigateur dans une nouvelle session et que je suis retourné à l'URL du site, j'ai obtenu le même message.

Je peux utiliser l'explorateur Windows et vérifier que la version supérieure de Common.dll est maintenant listée aussi.

Que puis-je faire de plus pour résoudre ce problème ? Je ne veux pas changer la référence dans mon assemblage pour pointer vers l'ancienne version.

0voto

bresleveloper Points 792

Pour SharePoint, assurez-vous que sous votre dossier racine, vous n'avez pas un dossier "bin" avec vos DLL, si c'est le cas, supprimez-le. (et changez "Copy Local" en false dans VS).

0voto

Les références d'un projet de site web sont stockées dans son fichier web.config. Mettez à jour la référence dans ce fichier pour corriger l'erreur.

J'ai passé un certain temps à examiner toutes les références de ma solution avant de me rendre compte que j'avais oublié les références du fichier web.config.

0voto

Buminda Points 171

J'ai eu le même problème avec UnitTestingProject, où dans le MainProject j'utilisais "System.Web.Mvc, Version=3.0.0.0" et dans UnitTestingProject j'utilisais "System.Web.Mvc, Version=3.0.0.1".

Changez ce qui suit dans le <Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\packages\Microsoft.AspNet.Mvc.3.0.50813.1\lib\net40\System.Web.Mvc.dll</HintPath> </Reference>

0voto

J'ai obtenu ce résultat après avoir ajouté Episerver Find à notre site et installé le paquet NuGet correspondant pour Episerver Find.

La solution était simple : mettre à jour tous les modules complémentaires liés à Episerver (même s'ils semblent sans rapport : CMS, CMS.TinyMCE, CMS.UI, etc.).

Après avoir mis à jour tous les modules complémentaires possibles d'Episerver et recompilé, l'erreur a disparu.

-1voto

Hadnazzar Points 338

Dans votre projet, trouvez les références System.Web.Mvc vérifier la version.

Après cela, faites un clic droit références -> assemblages et cherchez system.web.mvc et configuration il.

Le problème est que les différentes versions de ces assemblages .

Edit : Sélectionnez ensuite la gestion des paquets NuGet et installez les mises à jour. (si vous avez plusieurs projets, installez les mises à jour pour eux aussi).

Une mise à jour importante est Microsoft.AspNet.Mvc et Compilateurs Microsoft.Net ne l'oubliez pas !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X