Вопрос по visual-studio, visual-studio-2012, asp.net-mvc, visual-studio-2013, project – Как открыть старый проект MVC в Visual Studio 2012 или Visual Studio 2013?

149

У меня есть старый проект 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?

Спасибо я нене знаю этого. Там'Есть много вещей, которых у меня нетт, потому что я не сделалЗдесь никто не ищет. Brian White
ahsteele, спасибо за размещение решения. Отвечая на одинСобственные вопросы, когда решение найдено, добавляют знания сообществу. pomarc
Почему вы задали этот вопрос, если знали? Brian White
@BrianWhite Когда я столкнулся с этой проблемой сегодня утром, я сделал быстрый поиск в Google и неПридумай что-нибудь. Так как я знаком с тем, как работают файлы проекта VS, у меня было предположение относительно причины и потенциального решения. После того, как я убедился, что решение работает, я захотел поделиться этими знаниями. По мотивам ДжеффарекомендацииЭто'Можно задавать вопросы и отвечать на них. ahsteele

Ваш Ответ

3   ответа
287

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

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

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

Как 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; поэтому особенности проекта, такие какДобавить контроллер, просмотр и т. Д. » не будет присутствовать в меню.

Спасибо, это работает, также для VS 2013 (превью) Joost Schepel
Спасибо @bytebender за подтверждение того, что вышесказанное работает для проектов MVC 1! ahsteele
Это работает и для MVC 1. Я не былне может перезагрузить после редактирования файла проекта. Мне пришлось закрыть и снова открыть визуальную студию, и тогда она смогла загрузить проект MVC 1. Спасибо! +1 bytebender
@ahsteele - Вы когда-нибудь находили способ заставить VS предложить "Добавить контроллер, Просмотр » опции? В VS 2013 для проекта MVC3 все, что вы получаете, - это бритвенный вид MVC5 и отсутствие опций контроллера. Мой проект - это MVC3 webforms. В настоящее время я должен открыть в VS2012, чтобы добавить, сохранить, а затем снова открыть в 2013 году :( Peter
4

с подходом (спасибо и 2x + 1s!), но была еще одна ошибка: -

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

Я могу'Я не нашел ссылок на истинную причину этого, но я смог заставить VS2012RTM успешно загрузить проект, изменив, (Понятия не имею, как это произошло - его часть большого решения и VS08, VS10, VS11 Beta и VS2012RC все обновили.csproj а также.sln через некоторое время.

0

 так.

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

С уважением

Похожие вопросы