Перетворення рішення VS2012 у VS2010


127

Я працюю в VB-проекті з VS 2012, і після закінчення намагаюся додати проект налаштування.

Я не знайшов його (оскільки проект встановлення було припинено після VS2010), тому я перейшов на VS2010, але проблема полягає в тому, що проект не відкритий, і я отримую це повідомлення:

Вибраний файл є файлом рішення, але був створений новою версією цієї програми, і його неможливо відкрити.

Я спробував цю статтю: http://www.codeproject.com/Tips/80953/Converting-VS2010-Solution-to-VS2008 і спробував перетворити з 2012 по 2010 рік, але з'являється те саме повідомлення.


Чому ви просто не використовуєте VS2010 для створення єдиного інсталяційного проекту - наскільки я пам'ятаю, вам не потрібно включати проекти, а ви можете додавати файли самостійно
Carsten

Гаразд, це може бути
обробка

1
У вас sp1 на vs2010? Я думаю, вам потрібен пакет оновлень, щоб відкрити файли проекту / рішення 2012 року.
Георгій Стоянов

Відповіді:


306

Я також зіткнувся з подібною проблемою. Я гуглив, але не зміг знайти рішення. Тому я спробував самостійно, і ось моє рішення.

Відкрийте файл рішення у блокноті. Внесіть 2 зміни

  1. Замініть "Формат версії 12.00" на "Формат версії 11.00" (без лапок).
  2. Замініть "# Visual Studio 2012" на "# Visual Studio 2010" (без лапок).

Сподіваюсь, це допоможе вам і ..........


3
Чи є недолік цього зробити? Це здається занадто простим, щоб бути правдою.
kbeal2k

4
Він не працював для мене, він все ще стверджував, що це несумісне?
Девід

3
Дякую за цю пораду! Працює навіть для зниження рівня веб-api-проекту ASP.NET. На додаток до адаптації версії формату 12.00 до версії формату 11.00 у sln та коригування елемента TargetFrameworkVersion в csproj від 4,5> 4,0; Мені довелося вилучити елемент httpRuntime в web.config і відкоригувати атрибут компіляції targetFramework в web.config з 4.5> 4.0
AardVark71

2
Фантастичний, не можу повірити, що немає зворотної сумісності.
Стівен Мербі

1
Я просто потрапив у цю пастку за допомогою VS2013 - змінив Формат назад на 11 і все знову було добре в VS2010 - дякую!
Surfbutler

121

Просто для того, щоб пояснити чудову відповідь Бхавіна - редагування файлу рішення працює, але ви все одно можете отримати несумісну помилку (як повідомив Давид), якщо у вашому проекті VS2012 вибрано .NET 4.5 як версію .NET за замовчуванням, а ваше оточення VS2010 не підтримка цього.

Щоб швидко виправити це, відкрийте файл VS2012 .csproj у текстовому редакторі та змініть TargetFrameworkVersion вниз на 4.0 (з 4.5). Потім VS2010 із задоволенням завантажить «відредаговане» рішення та проекти.

Вам також доведеться редагувати файли app.config, які мають посилання на .NET 4.5 аналогічним чином, щоб вони могли працювати в середовищі .NET 4.0.


5
Це разом з відповіддю Бхавіна спрацювало чудово. Дякую обом.
desaivv

2
Дякую за цю пораду! Працює навіть для зниження рівня веб-api-проекту ASP.NET. На додаток до адаптації версії формату 12.00 до версії формату 11.00 у sln та коригування елемента TargetFrameworkVersion в csproj від 4,5> 4,0; Мені довелося видалити елемент httpRuntime в web.config і відкоригувати атрибут компіляції targetFramework в web.config з 4.5> 4.0
AardVark71

Крім того, вам, можливо, доведеться пройти ваші файли .vcproj і змінити набір інструментів платформи з v110 на v100.
Xyon

2

У мене була подібна проблема, і жодне з вищезгаданих рішень не працювало, тому я працював зі старим режимом очікування, який завжди працює:

  1. Перейменуйте папку, що містить проект
  2. Створіть абсолютно новий проект з такою ж назвою з 2010 року
  3. Відрізнити дві папки і->
  4. Копіюйте всі вихідні файли безпосередньо
  5. Ігноруйте бін / налагодження / випуск тощо
  6. Відмінніть .csproj та скопіюйте всі релевантні рядки.
  7. Якщо у файлі .sln є лише один проект, ігноруйте його. Якщо він складний, то відрізняйте його також.

Це майже завжди працює, якщо ви витратили на нього 10 хвилин і не можете його отримати.

Зауважте, що для подібних проблем зі старими версіями (2008, 2005) зазвичай можна піти, просто змінивши версію в .csproj або змінивши версію в .sln або відкинувши її, але це, здається, не працює в 2013 році .


2

найпростішим рішенням є ..... відкрити веб-сайт у vs2013 та перейти до Debug-> WebsiteProperties (остання опція), відкриється нове вікно.

у цьому вікні перейдіть до параметра "Збірка" та змініть .net-версію рамки з 4,5 на 4,0 ..... потім виберіть ОК. [зверніть увагу: цей крок буде працювати лише в тому випадку, якщо ваш проект не має залежностей від vs2013 ...]

Тепер відкрийте свій веб-сайт у vs2010


1

Відкрийте файл проекту, а не рішення. Проект буде перетворений Майстром, а після перетворення, коли ви будуєте проект, буде створено нове рішення як VS2010.


1

Рішення VS2010 підтримується VS2012. Рішення VS2012 не підтримується VS2010 -> лише одностороннім оновленням. VS2012 не підтримує налаштування проектів. Дізнайтеся тут більше про сумісність VS2010 / VS2012: http://msdn.microsoft.com/en-us/library/hh266747(v=vs.110).aspx


1
Читаючи цей документ, йдеться про те, що Є ДВІ речі, які добре працюватимуть між ними, тобто ви можете створити проект / рішення у VS2012 та відкрити його без проблем у VS2010. Однак у документі вказується, що є речі, які, якщо вони будуть використані у 2012 році, не дозволять вам відкритись у 2010 році. Stackoverflow.com/questions/10902865/… - це ще одна добра, проста відповідь.
бразильський діджагуар

Якщо ви уважно прочитаєте його, то ви побачите незначну різницю: проекти, створені у VS2010, працюють у VS2012, а не навпаки. "... ви можете відкрити проект, створений у Visual Studio 2010 SP1 ..."
Пьотр Левандовський

0

Просте рішення, яке працювало для мене.

  1. Встановіть редактор Vim для Windows.
  2. Відкрийте проектне рішення VS 2012 за допомогою редактора Vim та змініть націлювання на версію рішення Visual studio 10.
  3. Відкрийте рішення з Visual studio 2010 .. і продовжуйте свою роботу;)

Чому Vim, а не просто блокнот?
Зак
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.