Совместимость проектов VS2010 и VS2008

Кто-нибудь знает, будет ли VS2010 использовать тот же формат файла проекта и решения, что и 2008, или файлы проекта 2008 года нужно будет обновить до формата 2010, прежде чем они откроются в этой версии?


person Scott Ivey    schedule 27.05.2009    source источник
comment
Прочтите следующую статью в блоге Visual Studio. [Почему Visual Studio 2010 преобразует мои проекты?] blogs.msdn.com/visualstudio/archive/2010/03/15/   -  person Daniel Ballinger    schedule 04.05.2010


Ответы (8)


«Visual Studio 2010 позволит вам легко перенести ваши проекты из предыдущих версий Visual Studios в VS 2010, я назову этот процесс« Преобразованием »проекта из VS 200X в VS 2010…

VS 2010 также позволит вам изменить версию Target Framework вашего проекта на .NET 4.0 с .NET 2.0, 3.0 или 3.5… Я назову этот процесс «Обновление»… "

извлечено из http://vishaljoshi.blogspot.com/2009/05/vs-2010-project-conversion-upgrade.html

person João Guilherme    schedule 27.05.2009
comment
Это облом. То же самое они сделали с проектами 2005/2008 - затруднили работу над одним и тем же проектом в разных версиях студии для тестирования. - person Scott Ivey; 27.05.2009
comment
VS 2005 мог читать файлы проекта VS 2008, поэтому вы могли просто создать новые файлы решений. Я надеюсь, что смогу обойтись тем же трюком в VS 2010. - person Jonathan Allen; 22.10.2009
comment
Для проектов C # необходимо было изменить файл проекта VS2008, чтобы VS2005 мог его прочитать. Незначительная модификация, но все же модификация. - person John Saunders; 08.01.2010
comment
Он говорит о том, чтобы не обновлять старый проект VS 2008/2005, .sln и другие файлы, но по-прежнему работать с ними в vS 2010. - person PositiveGuy; 18.06.2010

Я только что создал небольшую партию файл, который по желанию преобразует VS2008 в VS2010 (наоборот).

Он перезаписывает строки, найденные на http://blogs.msdn.com/rextang/archive/2009/07/06/9819189.aspx между обеими версиями в автоматическом режиме.

person sebastiaan    schedule 16.03.2010
comment
Спасибо, это довольно удобно, так как я все еще использую VS2008, а в 2010 году все больше и больше проектов. - person user276648; 17.11.2010

Есть уловка.

  1. Создайте новый файл решения.
  2. Добавляйте все существующие проекты, обновляя их в процессе.
  3. Используйте старый файл решения в VS 2008 и новый в VS 2010.

Я проделал то же самое с VS 2005/2008 и не столкнулся с какими-либо проблемами.

person Jonathan Allen    schedule 22.10.2009
comment
Это не решает проблему, если файлы проекта находятся под контролем версий, а остальная часть команды использует VS 2008. - person DoctorFoo; 29.10.2009
comment
VS 2008 может читать файлы проекта VS 2010. Он просто не может читать файлы решений VS 2010. - person Jonathan Allen; 29.10.2009
comment
Еще лучше, вместо того, чтобы создавать новый файл решения, просто скопируйте исходный. Переименуйте их, чтобы указать, где 2008, а где 2010. Затем откройте и обновите 2010. Версия 2008 по-прежнему будет работать с VS 2008, даже если проекты в ней были обновлены. - person Ryan Lundy; 29.09.2010
comment
Извините, но я не уверен, что понимаю, я сделал, как сказал Киралесса: VS2010 преобразовал мои проекты и создал новые файлы проектов, заканчивающиеся на vcxproj, но VS2008 не может открыть эти файлы. Итак, как этот трюк должен работать, потому что я не против иметь 2 файла решения, но я не хочу иметь 2 файла проекта для каждого проекта. - person Franck Mesirard; 26.11.2010
comment
Извините, я не знаю, как это сделать с проектами VC ++. Я использовал этот трюк только на C # и VB. - person Jonathan Allen; 26.11.2010

Что ж, на самом деле есть проблема, с которой вы столкнетесь, если попытаетесь открыть проект VS2010 на компьютере, на котором работает только VS2008.

VS2010 вносит изменения в ссылку MSBuild (файл .target) в файле проекта, и он не может быть скомпилирован в VS2008, если вы не измените эту ссылку обратно на значение по умолчанию VS2008. Но если у вас установлены обе версии на одном компьютере, все будет нормально.

Таким образом, половина вашей команды может установить версию VS2010, даже не используя ее, и они могут использовать VS2008 по любой причине, по которой захотят.

Я не уверен, однако, как специфическая для языка функция версии 4.0 фреймворка будет работать с VS2008, моя теория заключается в том, что IDE не справится со всем этим. Поэтому, если вы используете C #, но нацелены как на VS2008, так и на VS2010, избегайте новых языковых функций.

person John Leidegren    schedule 08.01.2010

У вас может быть просто два разных файла решения. Обычно в открытых источниках делают fx. проект-2008.sln и проект-2005.sln.

person Siewers    schedule 29.10.2009
comment
самые простые решения всегда лучшие! - person Marek; 03.08.2010
comment
не помогает, если проекты создавались в VS2010, - person stoic; 30.09.2010

чтобы преобразовать файл решения Visual Studio 2010 (.sln) в файл решения Visual Studio 2008 (.sln), просто выполните следующие действия:

  1. в файле .sln замените "Format Version 11.00" на "Format Version 10.00".
  2. в файле .sln замените "# Visual Studio 2010" на "# Visual Studio 2008"
  3. в .csproj замените "ToolsVersion = '' 4.0 ''" на "ToolsVersion = '' 3.5 ''"
  4. в .csproj замените "v10.0" на "v9.0"
person daszarrin    schedule 10.04.2012

VS2010 сможет обрабатывать проекты фреймворков от 2.0 до 4.0, поэтому, если у вас есть проект в одном из этих фреймворков, маловероятно, что вам придется беспокоиться о каких-либо обновлениях или импорте или о чем-либо в этом роде, чтобы встать. и работает с текущими проектами.

person TheTXI    schedule 27.05.2009
comment
да, это очень обобщенное утверждение и не сработает для всех. Например, при работе с большими командами вы не можете заставить всех перейти на VS2010 только потому, что это сделал один разработчик. Также есть соображения по лицензированию ... - person Dave; 16.07.2010

Откройте файл решения (.sln) в блокноте и измените файл решения Microsoft Visual Studio, формат версии 11.00.

Visual Studio 2010

в файл решения Microsoft Visual Studio, формат версии 10.00

Visual Studio 2008

Затем откройте файл решения из Visual Studio 2008.

person Vinner    schedule 28.12.2012