【发布时间】:2018-07-22 13:15:51
【问题描述】:
不久前,我手动安装了 dotnet core 2.1.2 SDK,方法是将其解压缩到我的 %AppData% 文件夹中,并将其位置添加到 PATH 环境变量中。 这很好用,我可以通过 cmd 调用 dotnet 命令,VS Code 选择了正确的位置。
最近我安装了Visual Studio 2017,将net core 1.1 SDK安装到%ProgramFiles%\dotnet。 尽管此特定路径未在 PATH 变量中注册,但似乎现在默认使用此文件夹中的 dotnet.exe。
或者换句话说,当我打开 cmd.exe 并输入“where dotnet”时,我看到两个位置:
- %ProgramFiles%\dotnet\dotnet.exe(Vs2017安装的1.1 SDK)
- %AppData%....\dotnet\dotnet.exe - 即我手动解压的 2.1.2 SDK
当我运行“dotnet --version”时,我看到 1.1.0 - 因此默认 dotnet 命令似乎与 %ProgramFiles% 文件夹中的旧 1.1 版本相关联。
如何更改那里的优先级 - 例如我怎样才能让 dotnet 命令与我的自定义文件夹关联?
我应该注意我在非管理员 Windows 帐户上运行。我自己无法更改 %ProgramFiles% 文件夹中的任何内容(因此无法将较新的 SDK 复制到该文件夹,或删除/更改旧的 SDK)。
谢谢
【问题讨论】:
-
您在目录层次结构中的任何位置都有
global.json吗? (请参阅 [dotnetcore.gaprogman.com/2017/05/18/… Global global.json)了解更多信息) -
到目前为止还没有。我可以添加一个,但看起来只允许指定/强制某个 SDK 版本,但不允许首先指定 SDK(或 dotnet.exe)的路径 - 即如果我试图强制 SDK 版本 2.1.2,它仍然会在 %ProgramFiles%\dotnet 目录中查找(未安装 2.1.2 SDK 的位置)?
-
一旦正确安装(即通过 [dot.net/core](dot.net/core) 提供的安装程序),不同版本的 SDK 将并行运行并且(除非全局.json ) 将使用最新安装的 SDK 版本。我想说你应该通过安装程序安装 SDK,而不是手动解压缩它
-
绝对 - 但不幸的是,由于这里的非管理员帐户,我不能这样做
-
如果
WHERE报告了这两 (2) 个位置,很难相信它们都不在PATH中。请将cmd shell中PATH命令的文本输出复制粘贴到问题中。