Windows обновление останавливает сборку в VS2019 - PullRequest
0 голосов
/ 12 июля 2020

У меня есть простое консольное приложение C ++ в VS2019, которое работало и работало, когда последнее Windows Обновление решило (полезно?) Перезагрузить компьютер. Ничего не изменилось в приложении или его настройках проекта, и ничего больше не было установлено или изменено (мной). При повторном открытии VS2019 мой проект не может быть построен со следующей ошибкой

Severity    Code    Description Project File    Line    Suppression State
Error   MSB8020 The build tools for v142 (Platform Toolset = 'v142') cannot be found. To build using the v142 build tools, please install v142 build tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution".   ConsoleApplication1 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Platform.targets   57  

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

введите описание изображения здесь

Значит, похоже, что Windows ушел и заменил SDK внизу? Нужно ли мне устанавливать что-то новое, чтобы это работало? Я знаю, что мне, вероятно, удастся просто создать новый проект (и, вероятно, на этот раз), но я бы не хотел делать это с каждым принудительным обновлением.

В случае, если что-то из этого поможет, приложение В настройках каталогов VC ++ есть

$(VC_IncludePath)
$(WindowsSDK_IncludePath)

, который перед ретаргетингом оценивается как

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\include
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\atlmfc\include
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0\ucrt
C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\Include\um

, а после ретаргетинга оценивается как (например)

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\include
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\atlmfc\include
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\winrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\cppwinrt
C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\Include\um

1 Ответ

0 голосов
/ 12 июля 2020

Я нашел параметр Project Properties / General / Platform, и он был установлен на V142 (не установлен). Я заменил этот выбор на V141 (Visual Studio 2017), и все снова кажется правильным. Я не уверен, что это было лучше всего, но проект снова строится, как и ожидалось. Если кто-то может опубликовать более осознанный ответ (и объяснение, почему это могло произойти), я приму это. В случае, если у кого-то только что произошел разрыв проекта с последним обновлением, это сделало это для меня. взломать блокнот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...