4 votes

Revenir en arrière .NET 4 vers 3.5 SP1 dans VS2010

J'ai écrit une application WPF simple VS2010 qui ciblait .NET Framework 4 Client Profile. (En fait, mon application n'utilise pas du tout les fonctionnalités de .NET 4, mais VS2010 a par défaut démarré mon projet en ciblant .NET 4 donc je n'ai pas pris la peine de vérifier)

J'ai constaté que tous les systèmes XP et même quelques Windows 7 de différentes langues ne parvenaient pas à démarrer l'application. J'ai décidé de rétroporter mon application pour cibler .NET Framework 3.5 ou .NET Framework 3.5 Client Profile, en changeant le Framework cible dans les propriétés de la solution. Mais l'application ne compile pas ou ne se construit pas avec l'erreur suivante sur System.Xaml et Microsoft.CSharp:

Warning 1   Impossible de résoudre l'assembly System.Xaml. Le framework cible requis par cet assembly (4.0) est plus élevé que le framework cible du projet. Si cette référence est nécessaire pour votre code, vous pouvez rencontrer des erreurs de compilation.   test1
Warning 2   La référence principale "Microsoft.CSharp", qui est une assembly de framework, ne peut pas être résolue dans le framework actuellement ciblé. ".NETFramework,Version=v3.5". Pour résoudre ce problème, supprimez la référence "Microsoft.CSharp" ou retargettez votre application vers une version du framework contenant "Microsoft.CSharp".    test1
Warning 3   Le composant référencé 'Microsoft.CSharp' est introuvable.     
Warning 4   Le composant référencé 'System.Xaml' est introuvable.  

Est-il possible de rétroporter (ou retargetter) une application VS2010 vers .NET 3.5? Si oui, comment faire?

[EDIT]

J'ai découvert qu'il y avait un contrôle - DataGrid - conçu pour être utilisé pour .NET 4. J'ai dû installer WPF Tool Kit pour rétroporter les contrôles vers 3.5. J'espère que quelqu'un trouvera cela utile.

4voto

Ilian Pinzon Points 2125

Il suffit de les supprimer. Je l'ai testé et ça fonctionne pour moi. Je crois que ces assemblies ont été introduits uniquement dans .NET 4. Les types dans System.Xaml, par exemple, sont définis ailleurs dans .NET 3.5 (comme PresentationCore par exemple). Voir cet article pour plus d'informations.

1voto

Dave Markle Points 44637

Supprimez complètement ces références. Si vous en avez toujours besoin, réajoutez-les via l'interface utilisateur dans Visual Studio. Vous devriez voir les versions 3.5 ou 2.0 de ces assemblies. En utilisant ces anciennes versions, votre application devrait se compiler.

0voto

Polity Points 7316

Vous devez supprimer ces références du dossier des références et les réajouter avec la version 3.5.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X