2010-10-12 7 views
5

J'ai un projet .Net 2.0 qui dépend de nombreuses DLL .Net tierces (qui ciblent évidemment .Net 2.0).Mise à niveau d'un projet .Net 2.0 vers .Net 4.0

Si je devais migrer mon projet vers VS2010 et cibler le framework .Net 4.0, mon application sera-t-elle toujours disponible? Ou va-t-il se plaindre des références .Net 2.0 dll et je vais devoir trouver des versions .Net 4.0 de ces dlls tiers?

+0

La réponse d'Aaron semble être correcte. –

+0

Après quelques tests, voici ce que j'ai découvert: ASP.Net et CmdLine app ont tous deux travaillé après retargetting à .Net 4.0. Aucun changement n'a dû être apporté au fichier de configuration. De plus, les DLL de tierce partie (construites avec .Net 2.0) que j'utilisais pour générer des fichiers PDF fonctionnaient également comme sous .net 3.5. Mettra à jour si je trouve des getchas –

Répondre

3

Oui, cela fonctionnera. Assurez-vous que les fichiers .NET 2 et 4 FW sont installés sur les machines exécutant l'application.

+0

J'ai les deux cadres .net 2 et .net 4 installés sur ma machine. Mais je reçois l'erreur "Impossible de charger le fichier ou l'assembly 'Microsoft.Practices.EnterpriseLibrary.Data, version = 3.1.0.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a' ou l'une de ses dépendances.La définition du manifeste de l'assembly localisé ne correspond pas à la référence d'assemblage. (Exception de HRESULT: 0x80131040) " –

+0

@Rajah recherché Microsoft.Practices.EnterpriseLibrary.Data et il a dit qu'il est pour 2.0 et 3.0 mais 3.0 est nécessaire pour des choses spécifiques ... avez-vous aussi 3 là-bas? –

+0

Il ressemblait à VS 2010, mis à jour automatiquement la dll ref à V5 (qui est également installé sur ma machine). Une fois que je l'ai enlevé et lu v3.0 de EntLib, il a commencé à travailler sans problème. –

2

Si vous devez utiliser des assemblages plus anciens avec 4,0 (mode mixte) vous devrez peut-être ajouter ce qui suit à <yourappname>.config:

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
</startup> 

je devais le faire quand je tentais de charger des anciens 1.1 assemblées en mon programme IronPython (.NET 4.0) et a obtenu l'erreur suivante:

"Mixed mode assembly is built against version 'v1.1.4322' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information." 

l'ajout de ces trois lignes à mon dossier ipyw.exe.config me permettent d'exécuter ces assemblées en mode mixte.

Questions connexes