Як змусити файл Solution (SLN) відкритись у Visual Studio 2013?


102

Спроба відкрити рішення VS 2012 (файл SLN) явно у VS 2013 успішно. Просто двічі клацнувши його в Провіднику Windows, він все ще відкриває його в VS 2012.

Я читав " Visual Studio 2012 не перетворює рішення vs2010? " І дотримувався пропозиції "Зберегти як ..." файл рішення .

Проте він відкривається у VS 2012 за замовчуванням.

Моє запитання:

Як змінити файл SLN, щоб змусити його відкриватись у Visual Studio 2013?

Відповіді:


123

.slnФайл вказує на призначену версію в якості однієї з перших ліній - наприклад:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013

або:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

Однак - використовувати це можна лише у тому випадку, якщо програмою для .slnфайлів за замовчуванням є "Селектор версій Microsoft Visual Studio". Не рідкість, щоб програма за замовчуванням натомість .slnбула певною версією. У Windows 8:

введіть тут опис зображення

Ви можете сказати, що є типовим, тому що в ньому написано "продовжуйте використовувати":

введіть тут опис зображення

введіть тут опис зображення


2
@UweKeim hmmm; це не мій досвід; із селектором версій за замовчуванням, для мене завантажується правильна версія devenv за sln-файл - чи можливо ви завантажили ці рішення у VS2013 в будь-який момент? що оновить їх
Марк Гравелл

2
Що ж, ваша пропозиція мені більш ніж достатня. Полюбіть тепер вже жовті значки папок, порівняно з тими темними у VS 2012!
Uwe Keim

2
@UweKeim, якщо ви подивитесь у файл sln, у другому рядку вказується, з яким IDE відкрити: # Visual Studio 2013vs# Visual Studio 2012
Марк Гравелл

1
@UweKeim Я думаю, що у неї є резервний варіант "якщо я не визнаю значення або якщо IDE не встановлений, використовуйте найсвіжіший встановлений IDE"
Marc Gravell

6
для мене запуск за замовчуванням вже був встановлений на "Селектор версій Microsoft Visual Studio", але він запускав рішення, зроблені у візуальній студії 2013 року у 2012 році !! Але повторно застосувавши "Вибір версії Microsoft Visual Studio версії" як за замовчуванням її виправили. Тепер 2012 відкривається в 2012 ide і 2013 відкривається в 2013 ide. (Я використовую Windows 7 64bit)
Peter Flannery

35

Зауважте, що ви також можете примусити оновити .sln або .proj файл, використовуючи командний рядок, де devenv - цільова версія IDE:

devenv "MyProject.sln" /upgrade

Приклад:

"%programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" "D:\Source\MySolution.sln" /upgrade

Зауважте, що це не відкриває Visual Studio. Альтернативою є те, що з-за IDE виберіть "Зберегти як" для вашого файлу рішення та перезаписати або зберегти рішення під новим іменем.

Детальніше: http://msdn.microsoft.com/en-us/library/w15a82ay.aspx


1
Це тому, що це сценарій і не хакі.
CAD заблокували

2
На жаль, ця методика не завжди оновлює файл рішення.
Теофіл

Після цього devenv "MyProject.sln" /upgradeслід також відредагувати .sln файл, перевірте @ Zac's ans.
Вей Го

22

Здається, що в ОП вже є відповідна робота ... але для мене проблема була іншою. У мене було рішення VS 2012 (декілька насправді) і хотів перетворити їх на 2013 рік (що я розумію, це тривіальна зміна файлу .sln, але я хотів, щоб це було зроблено автоматично, якщо була якась таємна логіка оновлення, про яку я не знав) .

Тому я думав, що відкрию його у VS2013, він автоматично оновиться, як очікувалося, і тоді я буду налаштований двічі клацнути рішення та побачити його у VS2013, що рухається вперед. Але відкриття у VS2013 НЕ було оновлення рішення для мене автоматично, як очікувалося, і я не зміг знайти явного способу примусити оновлення після відкриття файлу в VS2013. Я міг би працювати з рішенням, зберегти зміни та закрити VS2013, але .sln залишиться незмінним та не оновленим.

Виявляється, моя проблема полягала в тому, як я відкривав рішення ... як звичка я клацаю правою кнопкою миші файли і вибираю "відкрити", щоб вибрати програму, яку я хочу використовувати для відкриття файлу. Я роблю це часто. Примітка. Я НЕ кажу про зміну програми за замовчуванням "відкрити з", а просто відкрити файл із певною програмою один раз. Тож я клацну правою кнопкою миші .sln файл ... відкрити за допомогою Visual Studio 2013 ... і нічого не оновиться.

Врешті-решт я подумав перейти до VS2013, потім зробіть «Файл»> «Відкрити» та виберіть. У будь-якому випадку миттєво оновили файл рішення.

Після оновлення рядки 2-3 у файлі .sln змінилися з цього:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

до цього:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30501.0
MinimumVisualStudioVersion = 10.0.40219.1

Отже, з мого досвіду, для автоматичного оновлення VS2012 .sln до VS2013 ви повинні відкрити VS2013 та вибрати .sln у діалоговому вікні «Файл> Відкрити». Використання оболонки провідника для примушування файлу .sln до відкриття у VS2013 не викликає логіки оновлення (мабуть).

У подальшому, я перевірив інше рішення, і після внесення змін через програму Configuration Manager (яка, очевидно, "торкається" файлу .sln), оновив VS2012 до VS2013, навіть після того, як відкрив його через відкриту правою кнопкою миші.


1
Це саме те, що я намагався зробити. У мене є Оновлення 3, і один проект автоматично оновлюється, але інший зміниться лише тоді, коли я відкрию Менеджер конфігурацій. Дякую за поради!
Еріка

2
Я навіть відкрив vs. 2012 .sln в рамках VS 2013, але для мене він НЕ оновився. Дивно.
PositiveGuy

4
Не оновлення рішення в VS 2013 викликає оновлення, це дія, яка модифікує рішення, наприклад, зміна налаштувань в активній конфігурації.
відбійник

Я спробував його оновити з vs2013 до vs2015, і це працює.
Дінгсін Сю

7

У мене було рішення, яке раніше було оновлено з 2010 по 2013 рік, але все ще показало .sln як асоційоване з 2010 роком.

Я перевірив усі методи, наведені в цій темі, і єдиним, який успішно виправив .sln, було відкрити Visual Studio 2013 поодинці, потім відкрити рішення, яке все ще пов’язане з 2010 роком, в IDE, а потім скористатися [Файл]> [Зберегти (ім'я) .sln as], щоб перезаписати наявний .sln файл.

Встановлення файлу Assoc .sln як "селектор версій Visual Studio" не змінилося, і рішення продовжувало відкриватися у 2010 році.

Метод devenv (name) .sln / upgrade не змінив файлу .sln.

Злом сирого тексту файлу .sln зіпсував шахту, і він взагалі не відкриється.


Ура, Джеффе, я просто зіткнувся з тією ж ситуацією, що і ти. Треба сказати, хоча приємно, що Microsoft вирішила, що VS 2013 не намагається оновити все, що стосується, на відміну від попередніх версій VS! Зазвичай це навпаки, і я намагаюся не допустити, щоб мої різні VS IDE оновлювали файли .proj та .sln :)
Simon Brangwin

@SimonBrangwin, що є поліпшенням, за винятком того, що якщо ви явно зателефонуєте за допомогою / оновлення відповідно до інших відповідей, ви очікуєте, що воно дійсно виконає запитане оновлення!
stannius

Джефф, дякую! Це єдиний спосіб, за яким я міг би оновити свій VS 2013 sln до відкритого за замовчуванням з 2015 року. Також мені довелося відкрити провідник рішень і вручну вибрати вузол рішення у верхній частині дерева провідника, щоб побачити "Зберегти (ім'я) ) .sln як 'параметр у меню Файл.
ToastyMallows

6

Для вирішення цього питання я просто змінив наступні рядки файлу .sln:

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010

в наступні:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013

Рядок коментарів слід змінити під час їх розбору завантажувачем рішення.


4

Це може працювати для читачів, які намагаються оновити файл рішення до Visual Studio 2015. (Я оновив рішення VS 2012.)

  1. Відкрийте рішення у VS 2015.
  2. Додайте новий проект до рішення. (Я додав тестовий проект.)
  3. Видаліть проект.
  4. Збережіть рішення.

Ви, можливо, захочете видалити видалену папку проекту, оскільки крок 3 не видалив її.

Це спрацювало для мене, коли не відповіли ні відповіді зумі, ні TCC .

EDIT

Метро Смурф мав аналогічну, але просту відповідь, ніж моя, на подібне запитання . Його кроки:

  1. Відкрите рішення у VS 2015
  2. Клацніть правою кнопкою миші рішення> Додати> Нова папка рішення (ім'я не має значення)
  3. Зберегти рішення
  4. Видаліть щойно додану папку рішення
  5. Зберегти рішення

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