Conversion de la solution VS2012 en VS2010

127

Je travaille dans un projet VB avec VS 2012 et après avoir terminé, j'essaye d'ajouter un projet d'installation.

Je ne l'ai pas trouvé (car le projet d'installation a été interrompu après VS2010), alors je suis passé à VS2010 mais le problème est que le projet ne s'ouvre pas et je reçois ce message:

Le fichier sélectionné est un fichier de solution mais a été créé par une version plus récente de cette application et ne peut pas être ouvert.

J'ai essayé cet article: http://www.codeproject.com/Tips/80953/Converting-VS2010-Solution-to-VS2008 et j'ai essayé de convertir de 2012 à 2010 mais le même message apparaît.

HokaHelal
la source
Pourquoi n'utilisez-vous pas simplement VS2010 pour créer un seul projet d'installation - pour autant que je me souvienne, vous n'avez pas besoin d'inclure des projets et pouvez ajouter les fichiers par vous
Carsten
ok, cela peut être un travail autour de l'idée est que nous incluons toujours la configuration avec le projet dans la même solution pour rendre la compilation / déploiement rapide
HokaHelal
1
Avez-vous SP1 sur vs2010? Je pense que vous avez besoin du Service Pack pour ouvrir les fichiers projet / solution 2012.
Georgi Stoyanov

Réponses:

306

J'ai également fait face au problème similaire. J'ai cherché sur Google mais je n'ai pas trouvé la solution. J'ai donc essayé par moi-même et voici ma solution.

Ouvrez votre fichier de solution dans le bloc-notes. Faire 2 changements

  1. Remplacez "Format Version 12.00" par "Format Version 11.00" (sans guillemets.)
  2. Remplacez «# Visual Studio 2012» par «# Visual Studio 2010» (sans guillemets).

J'espère que cela vous aidera aussi ..........

Bhavin
la source
3
Y a-t-il un inconvénient à faire cela? Cela semble trop facile pour être vrai.
kbeal2k
4
Cela n'a pas fonctionné pour moi, il a toujours maintenu qu'il était incompatible?
David
3
Merci pour cette astuce! Fonctionne même pour la rétrogradation d'un projet API Web ASP.NET. En plus d'adapter Format Version 12.00 à Format Version 11.00 dans sln et d'ajuster l'élément TargetFrameworkVersion dans csproj de 4.5> 4.0; J'ai dû supprimer l'élément httpRuntime dans web.config et ajuster l'attribut de compilation targetFramework dans web.config de 4.5> 4.0
AardVark71
2
Fantastique, je ne peux pas croire qu'il n'y ait pas de compatibilité descendante.
Stephen Murby
1
Je suis juste tombé dans ce piège en utilisant VS2013 - j'ai changé le format à 11 et tout allait bien à nouveau dans VS2010 - merci!
Surfbutler
121

Juste pour élaborer sur l'excellente réponse de Bhavin - l'édition du fichier de solution fonctionne, mais vous pouvez toujours obtenir l'erreur incompatible (comme David l'a signalé) si vous aviez sélectionné .NET 4.5 comme version .NET par défaut dans votre projet VS2012 et que votre environnement VS2010 ne le fait pas soutenir cela.

Pour résoudre rapidement ce problème, ouvrez le fichier .csproj VS2012 dans un éditeur de texte et modifiez TargetFrameworkVersion à 4.0 (à partir de 4.5). VS2010 chargera alors volontiers la solution et les projets "édités".

Vous devrez également modifier les fichiers app.config qui ont des références à .NET 4.5 d'une manière similaire pour leur permettre de s'exécuter sur un environnement .NET 4.0.

Rory Solley
la source
5
Cela ainsi que la réponse de Bhavin ont parfaitement fonctionné. Merci à vous deux.
desaivv
2
Merci pour cette astuce! Fonctionne même pour la rétrogradation d'un projet API Web ASP.NET. En plus d'adapter la version de format 12.00 à la version de format 11.00 dans sln et d'ajuster l'élément TargetFrameworkVersion dans csproj de 4.5> 4.0; J'ai dû supprimer l'élément httpRuntime dans web.config et ajuster l'attribut de compilation targetFramework dans web.config de 4.5> 4.0
AardVark71
De plus, comme je l'ai fait, vous devrez peut-être parcourir vos fichiers .vcproj et changer l'ensemble d'outils de la plate-forme de la v110 à la v100.
Xyon
2

J'ai eu un problème similaire et aucune des solutions ci-dessus n'a fonctionné, alors j'ai opté pour une ancienne veille qui fonctionne toujours:

  1. Renommez le dossier contenant le projet
  2. Faites un tout nouveau projet avec le même nom avec 2010
  3. Différez les deux dossiers et->
  4. Copiez directement tous les fichiers source
  5. Ignorer bin / debug / release etc.
  6. Diffusez le .csproj et copiez sur toutes les lignes pertinentes.
  7. Si le fichier .sln n'a qu'un seul projet, ignorez-le. Si c'est complexe, différez-le également.

Cela fonctionne presque toujours si vous y avez passé 10 minutes et que vous ne pouvez pas l'obtenir.

Notez que pour des problèmes similaires avec les anciennes versions (2008, 2005), vous pouvez généralement vous en sortir en changeant simplement la version dans le .csproj et en changeant la version dans le .sln ou en la supprimant, mais cela ne semble pas fonctionner pour 2013 .

Wade Hatler
la source
2

la solution la plus simple est ..... ouvrez votre site Web dans vs2013 et allez dans Debug-> WebsiteProperties (dernière option) une nouvelle fenêtre s'ouvrira.

dans cette fenêtre, allez dans l'option "Build" et changez la version du framework .net de 4.5 à 4.0 ..... puis sélectionnez ok. [note: cette étape ne fonctionnera que si votre projet n'a pas de dépendances avec vs2013 ...]

Ouvrez maintenant votre site Web dans vs2010

Rakeshyadvanshi
la source
1

Ouvrez le fichier de projet et non la solution. Le projet sera converti par l'assistant, et une fois converti, lorsque vous construisez le projet, une nouvelle solution sera générée en tant que VS2010.

Michael Haephrati
la source
1

La solution de VS2010 est prise en charge par VS2012. La solution de VS2012 n'est pas prise en charge par VS2010 -> mise à niveau unidirectionnelle uniquement. VS2012 ne prend pas en charge les projets d'installation. Pour en savoir plus sur la compatibilité VS2010 / VS2012: http://msdn.microsoft.com/en-us/library/hh266747(v=vs.110).aspx

SomeWittyUsername
la source
1
La lecture de ce document indique qu'il existe des éléments qui fonctionneront très bien entre les deux - ce qui signifie que vous pouvez créer un projet / une solution dans VS2012 et l'ouvrir sans problème dans VS2010. Le document indique cependant qu'il y a des choses qui, si elles sont utilisées en 2012, ne vous permettront pas d'ouvrir en 2010. stackoverflow.com/questions/10902865/ ... est une autre bonne réponse simple.
brazilianldsjaguar
Si vous le lisez attentivement, vous devriez voir une légère différence: les projets créés dans VS2010 fonctionnent dans VS2012, pas l'inverse. "... vous pouvez ouvrir un projet qui a été créé dans Visual Studio 2010 SP1 ..."
Piotr Lewandowski
0

Solution simple qui a fonctionné pour moi.

  1. Installez l'éditeur Vim pour Windows.
  2. Ouvrez la solution de projet VS 2012 à l'aide de l'éditeur Vim et modifiez la version ciblant la solution Visual studio 10.
  3. Solution ouverte avec Visual studio 2010 .. et continuez votre travail;)
Client
la source
Pourquoi Vim et pas seulement le bloc-notes?
Zac