2010-02-23 5 views
0

L'une des bibliothèques que j'inclus dans mon projet utilise System.Web.Extensions 3.5.0.0, qui est en conflit avec mon application Framework 2.0, qui utilise (C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\System.Web.Extensions.dll). Je peux penser à 3 solutions possibles:Implications des versions en conflit de System.Web.Extensions

  1. Ignorer l'avertissement et ne rien changer. Je ne suis pas sûr de ce que l'application fait pour gérer cela.
  2. Ajouter un élément de liaison d'assembly à mon web.config (voir ci-dessous)
  3. Configurer explicitement l'application pour utiliser différents assemblys (je pense que c'est possible, mais je ne sais pas comment le faire).

Cependant, je ne suis pas sûr des implications de chacune de ces décisions. L'application semble fonctionner parfaitement même quand j'ignore les avertissements (solution 1), mais en ignorant les avertissements que je ne comprends pas tout à fait moi-même ... tout comme le fait d'avoir des avertissements comme celui-ci.

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31BF3856AD364E35" culture="neutral"/> 
      <bindingRedirect oldVersion="0.0.0.0-3.5.0.0" newVersion="3.5.0.0"/> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

Edit: Je ne pense pas que # 3 fonctionnera, car je pense que le référencement comme le AjaxControlToolkit, qui a ses propres références à System.Web.Extensions.

Répondre

0

Vous pouvez configurer votre application pour utiliser des versions spécifiques d'un assembly en définissant «Version spécifique» sur true dans la fenêtre de propriétés de la référence. Cela arrête une référence globale de la résolution à la dernière version d'un assembly. Si vous n'êtes pas sûr de vos références globales et de ce qu'elles peuvent résoudre, vous pouvez toujours copier le fichier .dll nécessaire dans un dossier "Libraries" local de votre application et le référencer directement, plutôt que d'utiliser une référence globale.

Vous pouvez également trouver this question and answer utile.

+0

Quand j'ai essayé ça, ça n'a fait aucune différence. Je suppose que c'est parce que je fais référence à AjaxControlToolkit, qui fait référence à System.Web.Extensions, qui ne fait pas référence à une version spécifique. – Brian