2015-08-24 2 views
2

Мы заинтересованы в переносе нашей среды с Visual Studio 2013 на Visual Studio 2015. У нас есть несколько решений с большим количеством проектов (около 100).Миграция Visual Studio с 2013 по 2015 год

Мы используем пользовательский .props-файл с условными свойствами для изменения таких вещей, как include-каталоги и пути вывода, подходящие для двух версий. Результирующие файлы проекта Visual Studio 2015 идентичны, за исключением параметров Project ToolsVersion и PlatformToolset.

В идеале я хотел бы иметь файлы проектов, совместимые с обеими версиями во время миграции. Это возможно?

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

ответ

4

На самом деле, я смог одновременно создавать проекты, совместимые с Visual Studio 2013 и Visual Studio 2015.

Я вручную отредактировал файл проекта, чтобы включить эти строки вместо обычной записи PlatformToolset. ProjectToolsVersion, похоже, не имеет значения.

<PlatformToolset Condition="'$(VisualStudioVersion)'=='12.0'">v120</PlatformToolset> 
<PlatformToolset Condition="'$(VisualStudioVersion)'=='14.0'">v140</PlatformToolset> 
1

Вы можете попробовать передать некоторые значения переменных в командную строку MSBuild при создании своих проектов в CI. Это классический сценарий, когда есть необходимость в создании нескольких конфигураций одного и того же проекта.

Обычно такие параметры, как «PlatformToolset», инкапсулируются в разные конфигурации (например, Release VC++ 12/Release VC++ 14), и желаемая конфигурация указывается при вызове MSBuild (конкретный сценарий зависит от программного обеспечения CI ты используешь).

«ToolsVersion» - это версия MSBuild, используемая в процессе сборки (не версия компилятора/компоновщика!), И в большинстве случаев вы можете использовать только одну версию для всех ваших конфигураций. Итак, просто оставайтесь с самой последней версией MSBuild, к которой у вас есть доступ к вашим машинам сборки/разработчика.

0

Мы используем довольно сложные строительные конфиги и в настоящее время развиваются одновременно с использованием VS2012, 2013 и 2015 годах Moving 2015 заставили нас некоторые незначительные изменения кода (он стал более ограничительный характер в некоторых точках), но за исключением того, что мы столкнулись с без вопросов.

Есть некоторые ненужные изменения в .csproj или .sln-файлах, но это в основном подпись VS и не вызывает ничего, кроме беспорядка в управлении исходными кодами :) VS2012 открывает проекты без проблем.