Как преобразовать решение Visual Studio .NET 2008 в Visual Studio .NET 2005? - PullRequest
3 голосов
/ 06 мая 2009

Предположим, что решение содержит только классы и что все эти классы написаны для спецификаций .NET 2.0. Если бы это решение было открыто, преобразовано и сохранено в Visual Studio 2008, можно ли будет снова открыть решение позже в Visual Studio 2005 с некоторыми минимальными изменениями в файле .SLN?

Как можно поступить так?

Существует ли инструмент, который "преобразует" файлы .SLN с 2008 по 2005 годы, если все классы, содержащиеся в решении, уже записаны в спецификации .NET 2.0?

Ответы [ 6 ]

7 голосов
/ 06 мая 2009

Как правило, единственное, что вам нужно сделать с файлами .SLN, это изменить номер версии в верхней части файла.

Ваши файлы проекта CS также будут в порядке, а если нет, их можно настроить так, чтобы они были в порядке как в 2005, так и в 2008 году.

Некоторое время мы работали с двумя файлами решений (05 и 08), совместно использующими один и тот же набор файлов проекта CS.

Имейте в виду, что вы не можете делиться файлами проекта VC между двумя версиями, подобными этой.

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

Проекты CS, созданные на VS2008, будут содержать строку:

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

VS2005 захлебнется этим, и вам нужно изменить его на следующее:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

Последний будет работать с 2005 и 2008 годами.

3 голосов
/ 06 мая 2009

Здесь есть конвертер http://www.emmet -gray.com / Статьи / ProjectConverter.htm (также работает с VS 2010).

Существует также http://www.dsmyth.net/wiki/Downloads_VS2008ToVS2005Patcher.ashx
(ссылка в данный момент не работает?).

Я также нашел это http://www.codeplex.com/Vs2008BackMigration, но я не проверял это.

3 голосов
/ 06 мая 2009

Если вы не используете какие-либо «причудливые» функции в 2008 году, по моему опыту, единственное, что меняется, - это номер версии в нескольких местах. Это может быть отредактировано вручную (это вверху файла IIRC). По крайней мере, стоит попробовать. Если вы используете специфичные для VS2008 функции (дизайнеры и т. Д.), Это может не сработать, но для простых библиотек классов мне это удалось.

Вас может заинтересовать сообщение в блоге о сосуществовании VS2005 и VS2008 , о котором я писал некоторое время назад.

2 голосов
/ 06 мая 2009

Да, это возможно, если вы «понизили» версию файла решения.

Нет, такого инструмента, о котором я знаю, нет, и я посмотрел.

У вас есть три варианта:

  1. Не открывайте файл решения в 2008 году и, следовательно, никогда не обновляйте его
  2. Не смешивать версии клиентов с одними и теми же файлами (т. Е. Придерживаться версии 2005 или всех обновлений)
  3. Сохраняйте отдельные файлы решений на 2005 и 2008 годы, убедитесь, что все одинаковые проекты присутствуют в обоих

Спасибо @ Will Dean за напоминание о том, что файлы проекта действительно могут быть общими. Обратите внимание, что они тронуты редактором 2008 года, но их можно открыть в 2005 году.

1 голос
/ 06 мая 2009

Вы можете попробовать это. YMMV

http://www.emmet -gray.com / Статьи / ProjectConverter.htm

Я помню, что он был опубликован в блоге Джона Скитса несколько месяцев назад и, похоже, вызвал недовольство людей

0 голосов
/ 06 мая 2009

Прямого пути нет, и это непростая задача, если вы попробуете. Самый простой способ - создать новый проект 2005 года и добавить свои классы.

Для начала: вот различия, которые вы увидите:

.csproj файлы: (основаны на схеме MSBuild)

(редактировать)

  • ToolsVersion
  • ProductVersion
  • ProjectVersion
* * 1016 (удалить)
  • OldToolsVersion
  • TargetFramework

.sln файлов: (без схемы)

  • Формат версии 10.0

и т.д.

...