Как открыть старый проект MVC в Visual Studio 2012 или Visual Studio 2013?

У меня есть старый ASP.NET проект MVC 2, который я не хочу обновлять до MVC 3 или MVC 4. Я работаю над новой машиной под управлением Windows 8, Visual Studio 2012 и Visual Studio 2013. Когда я пытаюсь открыть проект MVC 2 в VS 2012 или VS 2013, я получаю сообщение об ошибке:

этот проект несовместим с текущей версией Visual Studio

затем проект выгружается и отображается серым цветом в обозревателе решений. Я не хочу устанавливать другую копию Visual Studio. Как открыть старый проект MVC в новой версии Visual Studio?

3 ответов


Открытие неподдерживаемого проекта MVC в Visual Studio 2012 или Visual Studio 2013 на самом деле довольно легко выполнить с помощью двух шагов. На самом деле, как комментарий bytebender указывает, эти же шаги должны применить и работать для проектов MVC 1. Однако я не тестировал их и поэтому не могу гарантировать, что они действительно работают.

предполагая, что вы еще не сделали этого, Шаг первый-загрузить и установить MVC 1, MVC 2 или MVC 3 (закройте Visual Studio перед началом установки).

как только у вас будет соответствующий вкус MVC установлен, проект все равно не загрузится в VS 2012. Это потому, что ASP.NET проекты MVC - это подтип проекта тип проекта веб-приложения. Это означает, что проект имеет дополнительные надстройки и функции, доступные при использовании в Visual Студия.

и Visual Studio 2012, и Visual Studio 2013 ограничены в их обратной совместимости с ASP.NET MVC и другие типы проектов. К сожалению, установка старых бит MVC не изменила этого. Visual Studio 2012 совместим С ASP.NET MVC 3 и 4 вкусы проекта. Visual Studio 2013 совместим С MVC 4 и MVC 5.

чтобы загрузить проект, вам придется изменить файл проекта. Делать это правильно нажмите на выгруженный проект и выберите Изменить. Который откроет файл проекта в виде текстового файла XML. Найдите ProjectTypeGuids узел, который должен выглядеть примерно так:

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

удалите соответствующий Guid проекта из списка:

  • ASP.NET MVC 1:{603c0e0b-db56-11dc-be95-000d561079b0}
  • ASP.NET MVC 2:{F85E285D-A4E0-4152-9332-AB1D724D3325} (показано в примере выше)
  • ASP.NET MVC 3:{E53F8FEA-EAE0-44A6-8774-FFD645390401}
  • ASP.NET MVC 4: {E3E379DF-F4C6-4180-9B81-6769533ABE47}

С соответствующим идентификатором GUID удален ProjectTypeGuids должно выглядеть примерно так:

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

сохраните файл и закройте редактор файлов проекта Visual Studio. Щелкните правой кнопкой мыши проект и выберите перезагрузить. Если проект не перезагружается, закройте и снова откройте Visual Studio. Теперь вы должны иметь возможность работать со своим старым ASP.NET проект MVC в новой версии Visual Studio.

важно отметить, что после этих изменений Visual Studio не знает, что это ASP.NET проект MVC; поэтому специфические для проекта функции, такие как " добавить контроллер, просмотр и т. д."не будет присутствовать в меню.


я использовал подход @ahsteele (спасибо и 2x+1s!), но была еще одна ошибка:-

.csproj: ошибка: операция не может быть завершена. Недопустимая строка класса

Я не могу найти никаких цитат для реальной причины этого, но я смог заставить VS2012RTM успешно загрузить проект, изменив <ProjectGuid>. (Не знаю, как это произошло - его часть большого решения и Vs08, VS10, Vs11 Beta и VS2012RC все обновили .csproj и .sln С течением времени.


в VS2017 решением будет просто сделать его как <ProjectTypeGuids></ProjectTypeGuids> Так.

никаких пробелов между леди и джентльменами, иначе это будет тратить 48 часов вашего времени.

в отношении