我必须在我的代码中使用Microsoft SDK
目录路径。c#
在Win 7
我可以通过以下行(硬编码)轻松获得它:
string path = Path.GetFullPath("C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Bin");
win xp
or中是否存在任何类型的路径win 98
?netsh.exe
出现在哪里xp
or 98
?
我必须在我的代码中使用Microsoft SDK
目录路径。c#
在Win 7
我可以通过以下行(硬编码)轻松获得它:
string path = Path.GetFullPath("C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Bin");
win xp
or中是否存在任何类型的路径win 98
?netsh.exe
出现在哪里xp
or 98
?
应该注意的是,在您阅读本文时,下面所说的任何内容都可能已经改变。Windows SDK 的结构和内容随着时间的推移而发展,并且可能会继续发展。
Windows SDK 以其所针对的 Windows 版本命名。例如,目前当前的 SDK 被命名为The Windows 10 SDK for Windows 10, version 1803。它针对 Windows 10 版本 1803,也称为Windows 10 April 2018 Update。该版本的 Windows 的版本号是10.0.17134。
Windows SDK 的默认安装位置\Program Files\Windows Kits\10
在 32 位系统和\Program Files (x86)\Windows Kits\10
64 位系统上。
安装文件夹中有许多子文件夹 - 例如 , ,include
等。在每个子文件夹中都有其他以目标 Windows 版本号命名的子文件夹 - 例如,等。lib
bin
10.0.17134.0
10.0.16299.0
mlgen.exe
因此,在磁盘驱动器上分配有字母 C 的系统上,工具的完整路径是C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86
32 位代码文件和C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x64
64 位代码文件。
从旧的 SDK 安装看来,面向Windows 10 周年版(版本10.0.4393)的 SDK 没有使用“Windows 版本号”子文件夹。
以前的 SDK 以 Windows 8\Program Files (x86)\Windows Kits\8.0
和 Windows 8.1为目标\Program Files (x86)\Windows Kits\8.1
。那些早期版本的 SDK 也不使用“Windows 版本号”子文件夹(至少我周围的那些不使用)。
再往前追溯,SDK 过去常常安装到一个名为Microsoft SDKs
而不是Windows Kits
. 例如,Microsoft Windows SDK for Windows 7 (7.1)默认安装到\Program Files\Microsoft SDKs\Windows\v7.1\
或\Program Files (x86)\Microsoft SDKs\Windows\v7.1\
.
当然,任何执行安装的人都可能选择使用不同的安装文件夹。
理想情况下,SDK 路径不应在任何程序中硬编码,因为它可能会因不同的 SDK 版本和不同的系统而改变。
问题如何以编程方式检测和定位 Windows 10 SDK?提供了一些替代方案。