日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

帮 vs2019 找回丢失的 SDK

發布時間:2023/12/4 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 帮 vs2019 找回丢失的 SDK 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

緣起

前一段時間,有網友遇到一個奇怪的問題,說他機器上的 vs2019 編譯 C++ 工程報錯。我當時一聽就有兩個懷疑:

  • 工程設置不對。

  • vs2019 沒裝好。

  • 因為新建一個最簡單的工程,編譯也報一樣的錯誤,所以可以排除工程設置的問題了。那只有可能是 vs2019 的問題了。但是具體是哪里的問題呢?

    他按照錯誤提示搜索到了如下鏈接:

    https://developercommunity.visualstudio.com/content/problem/761788/msb8036-the-windows-sdk-version-100183620-was-not.html

    根據鏈接里的提示,做過嘗試,沒能解決問題。后來在我們溝通的過程中,他自己解決了問題,這不就是大名鼎鼎的橡皮鴨調試法嗎?當他的問題解決后,我特意在本地重現了整個過程,做了一些調查,整理成本文,分享給大家。

    編譯受阻

    我用 vs2019 新建了一個最簡單的 Hello world 工程,編譯,報錯如下:

    Error MSB8037 The Windows SDK version 10.0.18362.0 for Desktop C++ x86 Apps was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution".

    更直觀的報錯截圖如下:

    問題排查

    既然提示找不到對應版本的 SDK,那么先到工程屬性里看一下對應的配置。在工程上,右鍵 -> 屬性 。在工程屬性對話框中選擇 Configuration Properties 下的 General 。在右側查看 Windows SDK Version 的值,確實是 10.0.18362.0,如下圖。

    工程 SDK Version 配置

    本地搜一下10.0.18362.0,看看本地是否存在相關的路徑。

    everything 搜索結果

    本地也存在相關路徑。能想到的可以懷疑的地方都排除了。接下來請出我們的老朋友 —— process monitor 。

    深入調查

    打開 process monitor,開啟監視,在 vs 中開始編譯,問題重現后,停止監視。

    下面就要進行最重要的步驟了—— 過濾。

    使用 process monitor 快速解決問題的關鍵在于過濾出與問題有關的事件!

    我們需要根據什么條件過濾呢?

    一般操作結果是成功的事件對我們幫助不大,所以首先過濾掉 Result 是 SUCCESS 的事件。

    既然提示的是找不到 10.0.18362.0 版本的 SDK ,相關錯誤應該和 10.0.18362.0 有關,所以只保留 Path 中包含 10.0.18362.0 的記錄。

    沒想到,效果這么好,只有六條。

    其中,有兩條是注冊表中找不到 HKLM\Software\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v10.0.18362.0(這個注冊表項不是必須存在的,在能正常編譯的機器上也可能找不到),最后一條是找不到文件 C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\sdkddkver.h。看來,應該是我本地少了這個文件。因為我故意把這個文件重名了,改回來,重新編譯,搞定。

    具體調查過程請參考下面的屏幕錄像。

    troubleshoot-missing-sdk-10.0.18362.0-screen-record

    后記

    跟這位網友溝通的整個過程特別順暢,省心。他已經根據線索在網上搜索了相關資料,自己摸索了一番。懷疑哪里有問題,立刻能查看相關的配置進行排查。最后,在溝通的過程中,他自己就把問題解決了。原來,他在前幾天把一些文件的位置給改了,改回來就好了。后來聊天得知,他才大二,后生可畏!

    總結

    在幫網友解決問題的過程中,我扮演的角色其實類似 “橡皮鴨”。也希望大家遇到問題時,把問題描述給周圍的人,也許自己就知道問題出在哪了。屢試不爽!

    猜你喜歡:

    VS 系列:

    排錯實戰——解決c++編譯錯誤:error C2059: illegal token on right side of '::'

    善用 vs 中的錯誤列表和輸出窗口,高效查找 C++ 多工程編譯錯誤

    轉儲文件系列:

    轉儲系列文章總結

    轉儲文件知多少

    你需要知道的 N 種抓取 dump 的工具

    你生成的轉儲文件有問題嗎?

    向大廠看齊!為自己的程序增加自動轉儲的功能!

    內核轉儲,開抓啦!

    藍屏(BSOD)轉儲設置,看本文就夠了!

    系統藍屏的幾種姿勢,確定不了解下么?

    本地內核調試環境搭建,就這么簡單!

    雙機內核調試 101

    使用 VMware + win10 + VirtualKD + windbg 從零搭建雙機內核調試環境

    使用 VMware + win10 + vs2019 從零搭建雙機內核調試環境

    本地內核調試神器 —— livekd 使用總結

    調試系列:

    調試實戰——你知道怎么使用DebugView查看調試信息嗎?

    調試實戰——程序CPU占用率飆升,你知道如何快速定位嗎?

    調試實戰——崩潰在ComFriendlyWaitMtaThreadProc

    調試實戰——使用windbg調試崩潰在ole32!CStdMarshal::DisconnectSrvIPIDs

    調試實戰——調試PInvoke導致的內存破壞

    調試實戰——調試excel啟動時死鎖

    調試實戰——調試DLL卸載時的死鎖

    調試實戰——調試TerminateThread導致的死鎖

    調試實戰——從堆里找回“丟失”的代碼

    調試實戰——從堆里找回“丟失”的代碼相關命令簡介

    排錯系列:

    排錯實戰——1分鐘解救 run 不出來的 Autoruns

    排錯實戰——VS清空最近打開的工程記錄

    排錯實戰——拯救加載調試符號失敗的IDA

    排錯實戰——你知道拖動窗口時只顯示虛框怎么設置嗎?

    排錯實戰——解決Tekla通過.tsep安裝插件失敗的問題

    排錯實戰——使用process explorer替換任務管理器

    排錯實戰——通過對比分析sysinternals事件修復程序功能異常

    歡迎留言交流

    需要你的

    總結

    以上是生活随笔為你收集整理的帮 vs2019 找回丢失的 SDK的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。