我必须在Microsoft SDK
代码中使用c#
目录路径。在Win 7
我可以通过以下行(硬编码)轻松获得它:
string path = Path.GetFullPath("C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Bin");
win xp
或win 98
中是否存在任何类型的路径?
netsh.exe
或xp
中的98
位于何处?
答案 0 :(得分:2)
请注意,以下所述内容可能会在您阅读时发生变化。 Windows SDK的结构和内容随着时间的推移而不断发展,并且可能会继续发展。
Windows SDK以其定位的Windows版本命名。例如,目前SDK名为 Windows 10 SDK for Windows 10,版本1803 。它面向Windows 10版本1803,也称为 Windows 10 April 2018 Update 。该版本Windows的版本号为 10.0.17134 。
Windows SDK的默认安装位置在32位系统上为\Program Files\Windows Kits\10
,在64位系统上为\Program Files (x86)\Windows Kits\10
。
在安装文件夹中有许多子文件夹 - 例如include
,lib
,bin
等。在每个子文件夹中都有其他子文件夹。目标Windows版本的版本号 - 例如10.0.17134.0
,10.0.16299.0
等
因此,对于32位代码文件,分配给磁盘驱动器的字母C的系统上mlgen.exe
之类工具的完整路径为C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86
,而C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x64
为\Program Files (x86)\Windows Kits\8.0
64位代码文件。
从旧版SDK安装中看来,针对 Windows 10周年纪念版(版本 10.0.4393 )的SDK未使用“Windows版本号”子夹。
以前的SDK针对的是Windows 8 \Program Files (x86)\Windows Kits\8.1
和Windows 8.1 Microsoft SDKs
。那些早期版本的SDK也不使用“Windows版本号”子文件夹(至少我所在的那些子文件夹没有)。
更进一步,SDK用于安装到名为Windows Kits
而非\Program Files\Microsoft SDKs\Windows\v7.1\
的文件夹中。例如, Microsoft Windows SDK for Windows 7(7.1)默认安装到\Program Files (x86)\Microsoft SDKs\Windows\v7.1\
或result = soup.find('div', class_="something")
data['val1'].append(result.text if result else "N/A")
。
当然,执行安装的任何人都可以选择使用其他安装文件夹。
理想情况下,SDK路径不应在任何程序中进行硬编码,因为它可能会针对不同的SDK版本和不同的系统进行更改。
问题How to programatically detect and locate the Windows 10 SDK?提供了一些替代方案。