【问题标题】:Cmd precedence: How to use correct dotnet.exe when installed in 2 locations?Cmd 优先级:安装在 2 个位置时如何使用正确的 dotnet.exe?
【发布时间】: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”时,我看到两个位置:

  1. %ProgramFiles%\dotnet\dotnet.exe(Vs2017安装的1.1 SDK)
  2. %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命令的文本输出复制粘贴到问题中。

标签: windows cmd .net-core


【解决方案1】:

尝试更改 %PATH% 环境变量,使其仅包含一个 .NET 文件夹。

【讨论】:

  • 不幸的是不可能 - %ProgramFiles% 位于系统 PATH 变量中,作为这台机器上的非管理员用户,我无法更改它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-15
  • 2011-07-11
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 1970-01-01
相关资源
最近更新 更多