Comment ouvrir un vieux projet MVC dans Visual Studio 2012 ou Visual Studio 2013?

j'ai un vieux ASP.NET projet MVC 2 Que Je ne souhaite pas mettre à niveau vers MVC 3 ou MVC 4. Je travaille sur une nouvelle machine fonctionnant sous Windows 8, Visual Studio 2012 et Visual Studio 2013. Quand j'essaie d'ouvrir le projet MVC 2 dans VS 2012 ou VS 2013 je reçois l'erreur:

ce projet est incompatible avec L'édition actuelle de Visual Studio

le projet est ensuite déchargé et grisé dans Solution Explorer. Je ne souhaitez pas installer une autre copie de Visual Studio. Comment puis-je ouvrir un ancien projet MVC dans une nouvelle version de Visual Studio?

149
demandé sur ahsteele 2012-11-17 00:39:05

3 réponses

ouvrant un projet MVC non soutenu dans Visual Studio 2012 ou Visual Studio 2013 est en fait assez facile à accomplir avec deux étapes. En fait, comme le commentaire de bytebender indique , ces mêmes étapes devraient s'appliquer et travailler pour les projets MVC 1. Cependant, je ne les ai pas testés et ne peux donc pas garantir qu'ils fonctionnent.

en supposant que vous n'ont pas déjà fait l'étape un est de télécharger et installer MVC 1 , MVC 2 ou MVC 3 (close Visual Studio avant de commencer l'installation).

une fois que vous avez la saveur appropriée de MVC installé le projet ne se chargera toujours pas dans VS 2012. C'est parce que ASP.NET les projets MVC sont un sous-type de projet du type de projet D'Application Web. Cela signifie que l' le projet dispose d'ajouts et de fonctionnalités supplémentaires lorsqu'il est utilisé dans Visual Studio.

Visual Studio 2012 et Visual Studio 2013 sont tous deux limités dans leur compatibilité avec ASP.NET MVC et d'autres types de projets. Malheureusement, l'installation des anciens bits MVC n'a pas changé cela. Visual Studio 2012 est compatible avec le ASP.NET MVC 3 et 4 project flavors. Visual Studio 2013 est compatible avec MVC 4 et MVC 5.

pour charger le projet, vous devrez modifier le fichier du projet. Pour ce faire clic droit sur le projet déchargé et sélectionnez Modifier. Qui ouvrira le fichier de projet sous forme de fichier texte XML. Trouvez le noeud ProjectTypeGuids qui devrait ressembler à quelque chose comme ceci:

<ProjectTypeGuids>
    {F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
</ProjectTypeGuids>

supprimer le guide de projet approprié de la liste:

  • ASP.NET MVC 1: {603c0e0b-db56-11dc-be95-000d561079b0}
  • ASP.NET MVC 2: {F85E285D-A4E0-4152-9332-AB1D724D3325} (montré dans l'exemple ci-dessus)
  • ASP.NET MVC 3: {E53F8FEA-EAE0-44A6-8774-FFD645390401}
  • ASP.NET MVC 4: {E3E379DF-F4C6-4180-9B81-6769533ABE47}

avec le guide approprié enlevé le ProjectTypeGuids devrait ressembler à ceci:

<ProjectTypeGuids>
    {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
</ProjectTypeGuids>

enregistrez le fichier et fermez L'éditeur de fichier du projet Visual Studio. Cliquez-droit sur le projet et sélectionnez recharger. Si le projet ne se recharge pas fermer et rouvrez Visual Studio. Vous devriez maintenant être en mesure de travailler avec votre ancienne ASP.NET projet MVC dans votre nouvelle version de Visual Studio.

une chose importante à noter est qu'après ces modifications Visual Studio n'est pas conscient qu'il s'agit d'une ASP.NET MVC projet; donc les caractéristiques spécifiques du projet comme " Ajouter Contrôleur, vue, etc."ne sera pas présent dans les menus.

283
répondu ahsteele 2017-05-23 12:17:54

j'ai utilisé l'approche de @ahsteele (merci et 2x+1s!), mais avait une autre erreur:-

.csproj : erreur : L'opération n'a pas pu être terminée. Chaîne de classe invalide

Je ne trouve pas de citations pour la vraie cause de cela, mais j'ai pu obtenir VS2012RTM pour charger le projet avec succès en changeant le <ProjectGuid> . (Aucune idée de comment cela est arrivé - sa partie d'une grande solution et VS08, VS10, VS11 bêta et VS2012RC ont tous mis à niveau le .csproj et .sln au fil du temps.

4
répondu Ruben Bartelink 2013-02-01 11:58:51

Dans VS2017 la solution est de faire comme <ProjectTypeGuids></ProjectTypeGuids> .

pas de place entre Mesdames et Messieurs, sinon vous perdrez 48 heures de votre temps.

concerne

0
répondu WickStargazer 2017-05-12 12:27:38