我刚刚在一台新的Windows机器上安装了Rust和VS代码。
我已确认Rust已成功安装并已添加到PATH
PS C:\Users\Steven> cargo --version
cargo 1.53.0 (4369396ce 2021-04-27)
PS C:\Users\Steven> $env:path -split ";"
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\Windows\System32\OpenSSH\
C:\Users\Steven\.cargo\bin
C:\Users\Steven\AppData\Local\Microsoft\WindowsApps
C:\Users\Steven\AppData\Local\Programs\Microsoft VS Code\bin
但是当我启动vscode并试图从集成终端使用货物时,它丢失了,VS Code中集成powershell终端的路径也不一样。
PS C:\Users\Steven> cargo --version
cargo : The term 'cargo' is not recognized as the name of a cmdlet, function, script file, or operable program.
PS C:\Users\Steven> $env:path -split ";"
C:\Program Files\Mozilla Firefox
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\Windows\System32\OpenSSH\
C:\Users\Steven\AppData\Local\Microsoft\WindowsApps
为什么VSCode的ppowershell中的路径不同?
如何使用VSCode综合码头内的货物?
2条答案
按热度按时间llew8vvj1#
如果您 * 刚刚 * 安装了Rust,您可能需要从Windows注销并重新登录,以便正确应用对环境变量的更改。
每个进程都有自己的环境变量集。通常,环境变量是从它们的父进程继承的。当你安装Rust时,rustup在Windows注册表中配置了你的用户级环境变量,但是这并不会刷新已经运行的进程的环境。
在某些情况下,Windows资源管理器/文件资源管理器会在生成进程之前重新加载系统/用户环境变量,而在某些情况下则不会。大多数其他程序甚至都不会这么做。注销并从头开始更容易。
在其他操作系统上也是如此(尽管系统/用户环境变量存储在登录脚本中,而不是存储在注册表中,这一点很明显)。
yhxst69z2#
关闭并重新打开所有VSCode示例。
进程总是在创建时从其父进程继承环境变量(例如
$PATH
,需要定位cargo
)。只要有一个打开的VSCode示例,任何未来的VSCode进程都会从它继承,包括Rust安装之前的旧
$PATH
。这就是为什么重新打开VSCode终端,甚至工作区本身都不能解决这个问题。当然,弗朗西斯建议的注销和登录肯定会起作用,但这不应该是必要的。