簡體   English   中英

如何獲取安裝的 Windows SDK 版本?

[英]How to get installed Windows SDK version?

如何確定我的計算機上安裝了哪個版本的Windows SDK

我在問,如果尚未安裝最新版本,我可以安裝它。

至少在英語語言環境中:

dir "%ProgramFiles%\Microsoft SDKs\Windows"

應該管用。 很可能會安裝多個版本,對於一個構建來說正確的版本只能由該項目指定。

Windows SDK 的當前版本存儲在以下注冊表項的CurrentVersion值中:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows

HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows CurrentVersion

並且可以使用這個 PowerShell one-liner 來檢索它:

$(Get-Item "hklm:\SOFTWARE\Microsoft\Microsoft SDKs\Windows").GetValue("CurrentVersion")

在此處輸入圖片說明

如果您需要在編譯時確定正在使用的 Windows SDK 的主要操作系統版本,那么您可以使用在 ntverp.h 中定義的 VER_PRODUCTBUILD 宏。 例如:

#include <ntverp.h>
#if VER_PRODUCTBUILD > 9600
// Windows 10+ SDK code goes here
#else
// Windows 8.1- SDK code goes here
#endif

在大多數情況下,這不是必需的,因為產品應該設計為使用特定平台 SDK 構建。 但對於一些大型產品,可能需要支持多平台 SDK。 這在從一個遷移到另一個時特別有用。 如果頭文件中存在錯誤(例如 bthledef.h 的 Windows 8.1 SDK 版本中的虛假“#pragma pop”),則您可能需要解決此錯誤,但在使用 Windows 10 SDK 時不包括解決方法或更高。 如果未安裝所需的 SDK 版本,此技術還可用於提供有用的錯誤消息。

請注意,VER_PRODUCTBUILD 僅提供主要操作系統版本信息,例如 8.1 與 10。這意味着 VER_PRODUCTBUILD 越來越無用,因為它不會隨着 Windows 10 的更新而改變。因此,更有可能查看的是 sdkddkver.h 和NTDDI_WIN10_* 宏。 從 Windows 10.0.17763.0 SDK NTDDI_WIN10_RS5 開始,現已定義。 所以,寫這樣的代碼:

#include <sdkddkver.h>
#if !defined(NTDDI_WIN10_RS5)
    #error Windows 10.0.17763.0 SDK is required
#endif

對於最新版本,請在此注冊表項下檢查:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits

或以下:

C:\Program Files (x86)\Microsoft SDKs\Windows Kits

如果您安裝了 Visual Studio,您可以打開一個 Visual Studio 解決方案(或自己創建一個),然后在解決方案資源管理器中右鍵單擊該解決方案,並選擇Retarget Solution 該菜單應為您提供可用 Windows SDK 版本的下拉列表。

查看控制面板/卸載程序 “Windows 軟件開發工具包 - Windows XXXX”(其中 XXXX 是版本)。 它將列在您機器上安裝的所有其他軟件中。

如果您安裝了 vs2019(或任何其他版本),您可以在“桌面開發部分”的工作負載下查看 Windows SDK 版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM