Плагин Visual Studio, позволяющий открывать 2005 решения с 2008 года? - PullRequest
0 голосов
/ 16 февраля 2009

Кто-нибудь знает, есть ли плагин для Visual Studio 2008, позволяющий открывать решения VS2005 неразрушающим способом?

Я думаю, что преобразованный файл проекта хранится в памяти, а не заменяет оригинальный на диске, и .Net Framework 2.0 будет использоваться по умолчанию?

Текущее поведение требует сложного процесса преобразования, который уничтожает исходный файл решения и заканчивается проектом, ориентированным на более новую платформу. Я хочу что-то, что позволило бы разработчикам, все еще использующим 2005, продолжать работу над проектом.

Ответы [ 2 ]

4 голосов
/ 16 февраля 2009

То, как я видел это в проектах с открытым исходным кодом, - это создание файла решения для каждой версии VS. Поскольку файлы проекта (csproj, vbproj и т. Д.) Совместимы между версиями, вам не нужны отдельные версии.

2 голосов
/ 16 февраля 2009

Просто откройте свой проект 2005 года в 2008 году и дайте ему возможность обновить ваше решение / проекты. Вы можете получить диалоговое окно с просьбой обновить версии CLR, просто скажите нет.

Получив работающее решение 2008 года, скопируйте файл * .sln под другим именем (я называю его копией * .2005.sln), откройте скопированный файл * .sln в блокноте или в своем любимом текстовом редакторе. Найдите «Формат версии 10.0» во 2-й строке и измените на «Формат версии 9.0». Сохраните файл.

Вот и все, ваш обновленный файл решения работает в VS 2008, а тот, который вы скопировали и изменили, работает в VS 2005.

Есть еще один шаг, если у вас есть проекты веб-приложений. В файле vbproj или csproj веб-приложения найдите строку:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplications.targets" Condition="" />

и замените одну строку этими двумя:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v8.0\WebApplications\Microsoft.WebApplications.targets" Condition="'$(Solutions.VSVersion)' == '8.0'" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplications.targets" Condition="'$(Solutions.VSVersion)' == '9.0'" />

Эти две строки будут условно выбирать правильный путь MSBuild в зависимости от используемой версии VS.

...