3 votes

Comment convertir une solution Visual Studio .NET 2008 en Visual Studio .NET 2005 ?

Supposons qu'une solution ne contienne que des classes et que ces classes soient toutes écrites selon les spécifications .NET 2.0. Si cette solution devait être ouverte, convertie et enregistrée dans Visual Studio 2008, serait-il possible de rouvrir la solution plus tard dans Visual Studio 2005 en apportant quelques modifications minimes au fichier .SLN ?

Comment s'y prendre ?

Existe-t-il un outil permettant de "down convertir" les fichiers .SLN de 2008 à 2005 si toutes les classes contenues dans la solution sont déjà écrites selon les spécifications .NET 2.0 ?

7voto

Will Dean Points 25866

En général, la seule chose à faire avec les fichiers .SLN est de changer le numéro de version en haut du fichier.

Vos fichiers de projet CS seront également presque corrects, et si ce n'est pas le cas, il est possible de les modifier de manière à ce qu'ils soient compatibles avec les versions 2005 et 2008.

Nous avons fonctionné pendant un certain temps avec deux fichiers de solution (05 et 08) partageant le même ensemble de fichiers de projet CS.

Sachez toutefois que vous ne pouvez pas partager les fichiers de projet VC entre les deux versions de cette manière.

La modification des fichiers de projet est la suivante :

Les projets CS créés sur VS2008 contiendront la ligne :

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

VS2005 va s'étouffer sur ce point, et vous devez le remplacer par ce qui suit :

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

Ce dernier w

3voto

Jon Skeet Points 692016

Si vous n'utilisez pas de fonctionnalités "fantaisistes" en 2008, la seule chose qui change, selon mon expérience, est le numéro de version à quelques endroits. Ce numéro peut être modifié manuellement (il se trouve en haut du fichier, je crois). Cela vaut au moins la peine d'essayer. Si vous utilisez des fonctionnalités spécifiques à VS2008 (designers, etc.), il se peut que cela ne fonctionne pas, mais pour de simples bibliothèques de classes, j'ai réussi à le faire.

Vous pouvez être intéressé par un article de blog sur la coexistence de VS2005 et VS2008 que j'ai écrit il y a quelque temps.

3voto

ggf31416 Points 2060

Ici, il y a un convertisseur h (fonctionne également avec VS 2010).

Il y a aussi http://www.dsmyth.net/wiki/Downloads_VS2008ToVS2005Patcher.ashx
(lien actuellement cassé ?).

J'ai également trouvé ceci http://www.codeplex.com/Vs2008BackMigration mais je ne l'ai pas testé.

2voto

Lasse V. Karlsen Points 148037

Oui, c'est possible, si vous "rétrogradez" les fichiers de la solution.

Non, il n'existe pas d'outil de ce type à ma connaissance, et j'ai cherché.

Trois possibilités s'offrent à vous :

  1. Ne pas ouvrir le fichier de la solution en 2008, et donc ne jamais le mettre à jour
  2. Ne pas mélanger les versions des clients dans les mêmes fichiers (par exemple, s'en tenir à 2005 ou mettre tout le monde à niveau).
  3. Gardez des fichiers de solution séparés pour 2005 et 2008, assurez-vous que tous les projets sont présents dans les deux versions.

Merci à Will Dean pour m'avoir rappelé que les fichiers de projet peuvent effectivement être partagés. Notez qu'ils sont touchés par l'éditeur 2008, mais qu'ils peuvent être ouverts dans 2005 par la suite.

-2voto

dirkgently Points 56879

Il n'y a pas de méthode directe, et c'est une tâche ardue si vous essayez. La méthode la plus simple consiste à créer un nouveau projet 2005 et à y ajouter vos classes.

Tout d'abord, voici les différences que vous constaterez :

Fichiers .csproj : (ils sont basés sur le schéma MSBuild)

(éditer)

  • Version des outils
  • Version du produit
  • Version du projet

(supprimer)

  • OldToolsVersion
  • Cadre cible

Fichiers .sln : (pas de schéma)

  • Format Version 10.0

etc.

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