Rust | 更改 Windows Kits (SDK) 安装路径
问题描述
在 Windows 上安装 Rust 时会提示你要用 Visual Studio 安装 C++ desktop development 包,原因是 Rust 依赖于其中的 Windows SDK。但是按这种方式只能进行默认安装,而 Windows SDK 的默认安装会污染路径环境的问题。
这不是 Rust 特有的问题,如果你用 C++ 开发,也会遇到相同的问题。
解决方案
首先应该采用手动的方式安装 Windows SDK,安装器可以在 Windows 的官网上下到。但是运行后会发现不允许修改默认安装路径。这时候需要修改注册表中 Windows Kits 的安装路径。
修改后 Windows SDK 的安装器就会将修改后的路径识别为默认路径。接着安装下去,完成后 Windows Kits 目录所在的路径就会和注册表修改后的路径一致。
我一开始想过手动移动 Windows Kits 目录,但是执行 Rust 的命令会报错说找不到 Link.exe
,即便修改完注册表,再用 Visual Studio 安装一遍 C++ desktop development 也会报错说打不开 kernel32.lib
。我最后尝试了上述方法才成功。
参考资料
操作流程
- 运行 regedit 打开注册表。
- 找到
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows Kits\Installed Roots
并选中。如果不存在则需要手动创建。 - 修改
KitsRoot10
为你期望的路径。如果存在多个类似字段则都需要修改。 - 从 Windows 官网下载 Windows SDK 安装器。
- 打开安装器安装 Windows SDK,此时的默认安装路径应为注册表中修改后的路径。
- 安装完毕后建议删除旧的 SDK。
- 执行 Rust 命令确认能否正常操作。