Question

Je reçois ce message d'erreur lors de la compilation:

Assemblée 'MyFramework [...]' utilisations de les System.Web.Extensions, Version = 3.5.0.0 [...] 'qui a version supérieure à l'assemblage référencé 'System.Web.Extensions, Version = 1.0.61025.0 [...]

MyProject fait référence à la fois System.Web.Extensions 1.0 et le projet 'MyFramework', celui-ci renvoie à son tour extension web 3.5. Les deux références sont Copie locale = false, la version spécifique = true .

L'erreur se produit dans MyProject (non MyFramework). Quel est le problème ici?

Je comprends que deux versions du même ensemble ne peuvent pas coexsist sur le même emplacement, c'est la raison pour laquelle la copie locale est faux.

(Je sais que la configuration est boiteux, il est une grande application héritée, ne peut que rien Refactoriser.)

Mise à jour: il doit y avoir quelque chose avec mon projet. Je créé un projet d'échantillon (pour 2,0, en se référant extensions Web 1.0) qui utilise un autre exemple de projet (FWK 3,5, extensions Web 3.5) compile un tout droit. (La façon dont je m'y attendais.) Je essentiellement modelée la situation et ne pouvait pas reproduire le problème. La question a changé à:

Ce qui peut provoquer le comportement ci-dessus? Techniquement, il est faux de quoi que ce soit dans deux versions se référant à la même assemblée nom fort?

MISE À JOUR 2: voir les commentaires de réponse acceptée pour la cause. ( « Types exposés ».) Encore faut-il trouver le moyen de le résoudre.

Était-ce utile?

La solution

Vous devez utiliser alias extern pour référencer deux versions distinctes du même ensemble.

Autres conseils

Vous devez ajouter un <bindingRedirect> dans App.config.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top