2010-12-08 7 views
2

J'ai créé un .DLL ciblant .Net 4 mais maintenant je pense à le compiler à .Net 3.0 afin que les personnes utilisant Visual Studio 2008 puissent utiliser la DLL.Existe-t-il une différence entre un fichier .DLL compilé pour .Net 4 et .Net 3.0?

Existe-t-il une différence entre un fichier .DLL compilé pour .Net 4 et .Net 3.0?

En d'autres termes, devrais-je créer deux DLL (une pour chaque framework) car il est préférable d'utiliser une DLL compilée au framework de votre ciblage? ou devrais-je en offrir un compilé à .Net 3.0 et laisser les utilisateurs de VS2010 l'utiliser, car il n'y a pas de différence dans l'utilisation d'une DLL compilée avec un framework précédent?

Merci,

Mise à jour: j'aurais été plus explicite et ont ajouté « à part besoin du cadre nécessaire ». En d'autres termes, y a-t-il une différence entre, à partir d'un projet .Net 4, référencer une DLL compilée en .Net 3.0 et compilée en .Net 4? En supposant qu'ils utilisent tous deux la syntaxe .Net 3.0, gagnez-vous/perdez-vous quelque chose en utilisant l'un ou l'autre?

Répondre

1

Si votre assembly n'utilise aucune des fonctionnalités spécifiques à 4.0, il est probablement plus facile d'en compiler une version 3.0 et de l'utiliser pour les deux. (En fait, vous pouvez aller jusqu'à la version 2.0 si votre code le permet, car les versions 3.0 et 3.5 sont des surensembles de 2.0)

Si votre bibliothèque a déjà eu un code séparé pour différentes versions; pour une flexibilité maximale, vous pouvez créer un projet distinct pour les versions 3.0 et 4.0, et 'lier' les mêmes fichiers sources plutôt que d'avoir des copies séparées. Vous utiliseriez des directives de préprocesseur si jamais vous deviez coder différemment selon le framework.

0

Existe-t-il une différence entre un fichier .DLL compilé pour .Net 4 et .Net 3.0?

Oui, il y a une différence. Lorsque vous compilez une bibliothèque pour .NET 4.0, elle sera liée à mscorlib, v4.0.0.0 et si aucun .NET 4.0 n'est installé sur la machine cible, cela ne fonctionnera pas. D'un autre côté, si vous compilez avec .NET 3.5, il sera lié à mscorlib, v2.0.0.0 et fonctionnera sur les machines sur lesquelles .NET 3.5 ou ultérieur est installé (en supposant bien sûr que cette bibliothèque n'a pas d'autres dépendances spéciales).

+0

Mise à jour de la question pour clarifier le problème. – Manuel

Questions connexes