Pembaruan Windows merusak build di VS2019

Saya memiliki aplikasi konsol c++ sederhana di VS2019 yang berfungsi dan berjalan ketika Pembaruan Windows terbaru memutuskan untuk (membantu?) me-restart mesin. Tidak ada aplikasi atau pengaturan proyeknya yang berubah dan tidak ada lagi yang diinstal atau dimodifikasi dengan cara apa pun (oleh saya). Saat membuka kembali VS2019, proyek saya gagal dibangun dengan kesalahan berikut

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  

Saya telah mencoba memilih semua opsi SDK yang tersedia dari menu solusi penargetan ulang (ada empat) dan setiap kali melakukan pembersihan dan pembangunan kembali tetapi setiap kali masih gagal.

masukkan deskripsi gambar di sini

Jadi sepertinya Windows sudah hilang dan mengganti SDK di bawahnya? Apakah saya perlu menginstal sesuatu yang baru agar ini berfungsi? Saya tahu saya mungkin bisa lolos hanya dengan membuat proyek baru (dan mungkin kali ini), tetapi saya tidak ingin melakukan itu dengan setiap pembaruan yang dipaksakan.

Jika semua ini membantu, pengaturan Direktori VC++ aplikasi memang ada

$(VC_IncludePath)
$(WindowsSDK_IncludePath)

Yang sebelum penargetan ulang dievaluasi

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

dan setelah penargetan ulang dievaluasi menjadi (misalnya)

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

person Mark    schedule 12.07.2020    source sumber


Jawaban (1)


Saya menemukan opsi Project Properties/Umum/Platform dan disetel ke V142 (tidak diinstal). Saya mengganti pilihan ini dengan V141 (visual studio 2017) dan semuanya tampak baik kembali. Saya tidak yakin apakah itu yang terbaik untuk dilakukan, tetapi proyek ini dibangun kembali seperti yang diharapkan. Jika seseorang dapat mengirimkan jawaban yang lebih tercerahkan (dan penjelasan mengapa hal ini bisa terjadi), saya akan menerimanya. Jika proyek seseorang baru saja terhenti karena pembaruan terakhir, ini berhasil untuk saya.

Ide untuk ini memang datang dari solusi ini, meskipun saya tidak perlu melakukan peretasan notepad apa pun.

person Mark    schedule 12.07.2020