Как разработать беспрепятственно и в VC ++ 2010 и в VC ++ 2008 на той же работе?

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

Мне предложили "объединить" файлы проекта при регистрации или время изготовления со сценарием или инструментом. К сожалению, VC ++ формат файла проекта изменился от VS2008 до VS2010 и не имеет ничего общего.

Существует ли инструмент, там способный к слиянию/преобразованию между vc9 и vc10 файлами проекта? Я мог бы записать свой собственный инструмент, если нет никакого другого способа обратиться к этому.

13
задан 15 revs, 2 users 81% 8 July 2019 в 12:13
поделиться

9 ответов

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

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

Он позволяет описывать наши проекты простым синтаксисом в текстовых файлах, а затем 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.

6
ответ дан 1 December 2019 в 22:57
поделиться

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

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

2
ответ дан 1 December 2019 в 22:57
поделиться

The Gallio OSS project is built using VS2010 while most of the contributors still use VS2008. To keep the *.csproj files synchronized with the *.vs2010.csproj files, we use a simple PowerShell script that runs WinMerge against every pair of project files. Nothing complicated, but very handy.

You can download the script at Google Code. To run it, just type the following command:

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

I hope it helps.

6
ответ дан 1 December 2019 в 22:57
поделиться

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

  • Невозможность ввести параметры проекта VS2010
  • Любые изменения в проекте VS2010 будут перезаписаны и не будут объединены обратно в VS20008.
2
ответ дан 1 December 2019 в 22:57
поделиться

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

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

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

1
ответ дан 1 December 2019 в 22:57
поделиться

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

1
ответ дан 1 December 2019 в 22:57
поделиться

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

Когда я преобразовал проект с открытым исходным кодом, я заметил, что 2010 году действительно не нравились настройки проекта ClickOnce. Он бы нормально конвертировал, но просил бы меня конвертировать снова каждый раз, когда я открывал проект. Мой опыт в основном основан на схеме проекта C #, которая с течением времени практически не изменилась. Как отметил TheSamFrom1984, в схеме C ++ есть некоторые большие изменения, которые еще не вошли в документацию MSDN версии 10 .

1
ответ дан 1 December 2019 в 22:57
поделиться

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

0
ответ дан 1 December 2019 в 22:57
поделиться

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

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

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

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

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

1
ответ дан 1 December 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: