Как вернуть целевую платформу 8.1 в Visual Studio 2015 после установки студии 2017? - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть проекты, в которых запущена (нужна) visual studio 2015 и целевая платформа 8.1.У меня также есть проекты, которым нужна Visual Studio 2017. Поэтому я недавно установил 2017. Некоторое время это работало нормально для новых проектов на базе 2017 года.

Теперь мне нужно исправить ошибку в 2015-основанные проекты.

То, что я вижу в IDE в Свойства-> Общие-> Целевая Платформа от 10.0.10586.0.Можно увидеть выпадающий список "10.0.17134.0 и 8.1".Выбор 8.1 работает на секунду, но выбор не производится.Он возвращается к 10.0.10586.0.

Без 8.1 целые включаемые файлы windows.h не найдены, компиляция не работает.

Теперь самое интересное - у меня еще есть еще одна (маленькая)проект, который использует 2015. Этот проект перечисляет 8.1 в качестве целевой платформы.И это компилируется.Так что моя общая установка машины должна быть хорошей.

Каким-то образом установка 2017 года, возможно, испортила часть моих проектов 2015 года, но не все.Это выглядит действительно странно, так как .vcproject показывает неизменным в tortoisesvn.

Кто-нибудь знает, как проверить переменные среды и т. Д., Которые используются Visual Studio в отношении SDK?Или Microsoft использует еще одну базу данных для хранения дополнительной информации, связанной с проектом?

РЕДАКТИРОВАТЬ

Вот мое решение: я создал новый проект с нуля.По умолчанию это 8.1 и работает нормально.Затем я открыл старый файл .vcproj и скопировал

<ItemGroup>
    <ClCompile Include="myfile1.cpp" />
    <ClCompile Include="myfile2.cpp" />
    <ClCompile Include="etc.cpp" />
</ItemGroup>

Таким образом, по крайней мере, все мои исходные файлы могут быть восстановлены в новый файл проекта за минуту.Синтаксис xml для ItemGroups чистый.Для всех остальных настроек я использовал IDE.Открыл 2 сеанса Visual Studio и скопировал вручную настройки для библиотек, путей, флагов и т. Д. Теперь все работает снова.Выполнение windiff для обоих файлов .vcxproj не дает четкого ответа.

В новом проекте есть записи, такие как:

 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    <ConfigurationType>DynamicLibrary</ConfigurationType>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>v140</PlatformToolset>
    <WholeProgramOptimization>false</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup> 

Я не проверял, чтобы перенастроить это на старый vcxproj, так как у меня заканчивается время, и сейчас у меня есть работающее решение.Я дважды проверил - мой старый vcxproj действительно находился под контролем исходного кода, поэтому он не изменился.Наиболее вероятным кандидатом сейчас является Cuda.

Cuda имеет очень приятные и полезные расширения для визуальной студии.моя последовательность была

сентябрь - visual studio 2015 работает октябрь - добавил cuda 9, работал с cuda.Не трогал проекты с сентября.Скорее всего, проблема произошла здесь, но я не видел, потому что я не строю каждый день / неделю.Позже в октябре я установил Unreal Engine & Visual Studio 2017. Тогда это выглядело хорошо, но я опять не создавал проекты против 2015 года.Так что есть вероятность, что это оказало влияние.

И последнее, но не менее важное: я установил Intel Embree, что не выглядит подозрительно.Это ничего не меняет с визуальной студией.Ребята из Intel Embree не используют компилятор Microsoft.Я просто упоминаю об этом, чтобы определить группу возможных подозреваемых.

Так что, если вы столкнетесь с той же проблемой - создайте решение (проект) с нуля.

...