Как сделать файлы решения Visual Studio 2010 RC совместимыми с предыдущими версиями? - PullRequest
1 голос
/ 28 февраля 2010

Я пытаюсь использовать Visual Studio 2010. Но похоже, что файл .sln, созданный с его помощью, не поддерживается предыдущими версиями. Можно ли сохранить проекты таким образом, чтобы их можно было прочитать в предыдущих версиях Visual Studio (2008).

Ответы [ 2 ]

4 голосов
/ 28 февраля 2010

Принятый ответ неверен, когда речь идет о проектах . Это верно для файлов решения , но на самом деле они не так важны, как файлы проекта (поскольку, по моему опыту, они меняются не так часто, а их меньше).

Например, вы можете посмотреть на Время Ноды . У нас есть два файла решения (NodaTime VS2008.sln и NodaTime VS2010.sln), которые загружают одни и те же файлы проекта. Это обеспечивает довольно практичное решение для разработчиков, работающих с различными версиями Visual Studio.

Вручную измените первую часть файла проекта, чтобы она выглядела следующим образом:

<Project ToolsVersion="4.0" DefaultTargets="Build" 
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

(в основном просто измените ToolsVersion на 4.0.)

Вы также можете просто позволить VS2010 автоматически преобразовывать проекты и впоследствии сравнивать их, если хотите - посмотрите, не было ли сделано что-то еще, что вам не нужно.

В этот момент, когда вы создадите VS2008, вы получите такой вывод:

Файл проекта содержит ToolsVersion = "4.0", который не поддерживается этой версией MSBuild. Рассматривать проект так, как если бы он имел ToolsVersion = "3.5".

... но, по моему опыту, все равно будет работать. Могут быть некоторые странности, если вы используете много дизайнеров и т. Д., Но в целом все работает довольно хорошо.

0 голосов
/ 29 августа 2012

Поздний ответ, но для других в этой лодке, вот вариант, если вы не против преодоления кривой обучения.Загрузите копию TortoiseHg и установите ее.Это система контроля версий.(Существуют и другие системы контроля версий, такие как git, которые также могут это делать, но они должны поддерживать очереди исправлений, а TeamViewer - нет; однако это изолированное использование не конфликтует с TeamViewer для управления исходным кодом).Mercurial включает расширение под названием MQ, и вы должны включить его.Измените настройки, чтобы сделать патчи очереди исправлений секретными.([mq] secret = true или в настройках Commit, установите для Secret MQ Patches значение True. Если вы начнете использовать Mercurial для управления изменениями и не будете делать секреты патчей секретными, вы будете страдать от неизбежных аварий, когда патчи фиксируютсяхранилище и должно быть болезненно, вручную удалено из каждой пользовательской копии, только чтобы снова заскочить обратно через одного пользователя, который был в отпуске в тот день.)

Далее, создайте хранилище в папке решения.Найдите в Интернете файл .hgignore, чтобы не брать кучу дерьма, но если это ваша единственная цель, вы можете игнорировать все, кроме файлов * .sln и *. * Proj.Поместите все файлы туда под самой старой версией Visual Studio, которую вы используете.Затем откройте файл решения и разрешите Visual Studio выполнить автоматическое обновление.Затем откройте рабочую среду TortoisHg и создайте новый патч, содержащий все эти изменения.

Теперь вы можете вносить любые изменения в исходный код и помещать их в другой патч.Когда вы будете готовы поделиться, откройте рабочую среду, вытолкните все патчи и перетащите патч обновления вверх, а затем снова вставьте все патчи, кроме патча обновления.Готово (Репозиторий-> История изменений-> Готовое исправление) всех исправлений (кроме исправления обновления).Ваши изменения теперь включены в версию решения, основанную на самой старой версии Visual Studio, которую вы используете.

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

Это не фиксирует изменения в проектах или файле решения, так как они будут отменены при удалении обновления, но 99,9% всего исходного кода полностью обратно совместимо.Таким образом, помимо добавления новых / существующих элементов в проект или добавления новых проектов в решение, это должно охватывать большую часть вашей работы.Для внесения изменений в проекты выполните их в самой старой поддерживаемой версии Visual Studio, удалите исправления и создайте заново новое исправление.

...