Плавно развиваться как в VC ++ 2010, так и в VC ++ 2008 на одной и той же работе?

StackOverflow https://stackoverflow.com/questions/1633755

Вопрос

Я бы хотел синхронизировать проект VC ++ 2010 с проектом VC ++ 2008.Возможно ли это вообще ?В принципе, если я добавляю / удаляю / переименовываю файл в проект в VS2010, я бы хотел, чтобы он был добавлен / удален / переименован в соответствующий проект VS2008.Синхронизация параметров проекта тоже была бы замечательной, но не необходимой.Мне также не нужна синхронизация на уровне решения.

Редактировать:Мне предложили "объединить" файлы проекта при регистрации или сборке с помощью скрипта или инструмента.К сожалению, формат файла проекта VC ++ изменился с VS2008 на VS2010 и не имеет ничего общего.Так что мой вопрос больше похож на: Существует ли инструмент, способный объединять / конвертировать файлы проектов vc9 и vc10? Я мог бы написать свой собственный инструмент, если нет никакого другого способа решить эту проблему.

Это было полезно?

Решение

В моей компании у нас была точно такая же проблема, и мы решили использовать СМейк.

По крайней мере, попробуйте это в одном из ваших проектов, это идеальное решение для вашей проблемы.

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

Короче говоря, CMake - это:
1.чистый
2.описательный
3.родной
4.безопасный

Потому что:
1.Все параметры и конфигурации можно прочитать в файлах, а не на многих панелях свойств.
2.Грамматика и синтаксис CMake легко читаемы.
3.Все сгенерированные проекты являются завершенными и независимыми от CMake.
4.Вы можете использовать менеджер управления версиями для файлов CMake.

У нас было несколько решений из 50 или 20 проектов, и это была большая работа, и одной из причин, по которой мы использовали CMake, было то, что нам нужно было работать с Xcode на Mac над некоторыми библиотеками, проекты которых сейчас являются общими для VS и Xcode.
Но это стоило бы того даже только для разных версий VS.

Другие советы

проект Gallio OSS создан с использованием VS2010, в то время как большинство участников по-прежнему используют VS2008. Чтобы синхронизировать файлы *. Csproj с файлами *. Vs2010.csproj , мы используем простой скрипт PowerShell, который запускает WinMerge для каждой пары файлов проекта. Ничего сложного, но очень удобно.

Вы можете загрузить скрипт по адресу Код Google . Чтобы запустить его, просто введите следующую команду:

@echo off
powershell "& './Compare VS2010 Projects.ps1' -sync %*"

Надеюсь, это поможет.

Контроль источников здесь помогает. Я делал это раньше с предыдущими версиями, создав модернизированную ветвь (VS2010) и объединив изменения между ней и транком (VS2008). Хотя, конечно, не без шва, это работает.

Я не знаю, сделают ли изменения в проекте VS2010 лучше или хуже, чем раньше!

Я полагаю, что это опция командной строки для переноса файла проекта VS2008 в VS2010.Таким образом, вариантом было бы поддерживать только VS2008 и повторно создавать проекты VS2010.Недостатками являются

  • Невозможность ввести параметры проекта, специфичные для VS2010
  • Любые изменения в проекте VS2010 будут перезаписаны и не будут объединены обратно в VS20008.

Вы можете хранить эти файлы решений / проектов отдельно. если вы напишите свое дополнение, дайте мне знать!

У меня на работе не установлен 2010, поэтому здесь я использую в основном память.С 2005 по 2008 по 2010 год в файловой схеме проекта мало что изменилось.По большей части я просто использую инструмент сравнения текста, такой как WinDiff или BeyondCompare, чтобы выделить изменения и скопировать их из одного файла в другой.Я не играл ни с одним из типов веб-проектов, но предполагаю, что по большей части сработает та же техника.Поскольку их в основном XML-схема, вы также могли бы использовать инструмент сопоставления XML для выполнения той же работы.

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

Редактировать:Мой опыт в основном основан на схеме проекта C #, которая со временем не сильно изменилась.Как указывал TheSamFrom1984, в схеме C ++ произошли некоторые большие изменения, которые не попали в Документация MSDN для версии 10 пока.

Visual Studio 2010 поддерживает многоцелевой таргетинг, который позволит вам разрабатывать с использованием VS2010 и переориентировать инструменты платформы на V9, чтобы вы могли использовать новейшие инструменты для поддержки старого проекта. Почему бы просто не сделать это?

Он поставляется с VS2010 и VS2008 для C ++, вот некоторая информация по настройке набора инструментов VS2005

http://weblogs.asp.net/israelio/archive/2009/10/20/enable-vs-2010-multi-targeting-also-for-vs2005-c.aspx

Я сделал именно это, когда вышла VS 2008, и мы оценивали ее, пока остальная часть команды использовала VS 2005. Я не хотел фиксировать какие-либо файлы проекта нового формата, поскольку это сломало бы его для остальная часть команды, поэтому я написал небольшой скрипт в ruby, который просто искал все файлы .vcproj и переименовал их в _2008.vcproj . Я сделал то же самое для файлов .sln , но также искал ссылки на .vcproj в файлах sln и переименовал их в < code> _2008.vcproj , чтобы ссылаться на новые проекты.

Затем просто загрузите новые файлы решения и позвольте мастеру миграции сделать свое дело (я полагаю, что VS 2010 имеет тот же файл, что и старые версии). Это позволяет вам запускать обе версии бок о бок. Если кто-либо еще в команде внесет какие-либо изменения в старый файл проекта, просто повторно запустите преобразование, а затем мастер просто перенесет измененный проект.

Есть еще один трюк, который вам может понадобиться добавить в скрипт, который должен изменить поля OutputDirectory и IntermediateDirectory в файле vcproj, чтобы вы собирали их по-разному. каталоги тоже. Если вы это сделаете, то это означает, что вы должны иметь возможность строить с любой версией Visual Studio в одном и том же дереве исходных текстов.

Вы должны рассматривать копию VS2010 как ветвь. Каждые пару дней и при любых существенных изменениях (ожидающих прохождения тестов, разумеется) объединяйте изменения с другим отделением. Это широко распространенная и общепринятая практика в корпоративных программных средах.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top