2010-09-03 8 views
2

J'ai une application que j'ai mise à jour de 3.5 à 4.0. Mais tous mes assemblys tiers ne sont pas basés sur .net 4.0. Comment est-ce que je suis toujours capable de référencer ces assemblées sans aucun problème? Par exemple, si un autre assembly fait référence à system.dll 2.0 et que mon projet mis à niveau fait référence à system.dll 4.0, comment cela fonctionne-t-il? Obviosly ce n'était pas un problème mise à niveau entre 2.0 et 3.5 parce qu'ils utilisent les mêmes versions BCL et CLR, mais 4.0 utilise un droit BCL et CLR complètement différent?Compatibilité descendante entre .Net 2.0/3.5 et 4.0

Voici un exemple. J'ai une application construite en utilisant WF (Windows Workflow) dans la version 3.5. J'ai mis à jour l'application vers la version 4.0, mais je n'ai pas été obligé d'implémenter tous les changements de rupture dans la nouvelle version du workflow. Il utilise toujours l'ancienne version 3.5 de WF.

Répondre

4

.NET 4.0 peut référencer des assemblys .NET 2.0, mais l'inverse n'est pas vrai.

4.0 .NET assemblées en charge tout ce qui avait 2.0, mais ajoute dans des choses comme des paramètres facultatifs, types dynamiques, etc ... et

Ainsi, depuis 2.0 n'a rien que 4.0 n'a pas, 4.0 peut facilement supporter 2.0.

0

Le BCL et le CLR sont différents mais pas complètement différents. Fondamentalement, ils ont travaillé dur pour ne pas casser la compatibilité en arrière.

0

Vous pouvez également forcer vos assemblys tiers à s'exécuter sous 3.5, comme décrit in this post.

Questions connexes