【问题标题】:No executable found matching command "dotnet-script"找不到与命令“dotnet-script”匹配的可执行文件
【发布时间】:2019-05-05 04:38:34
【问题描述】:

为什么dotnet script 安装后不能在 PowerShell 中运行?我在安装后关闭并重新打开了所有 PowerShell 实例。

当我运行dotnet script init 时,PowerShell 会抛出此错误:

找不到与命令“dotnet-script”匹配的可执行文件

编辑:

  • dotnet script 确实在 cmd.exe 中运行
  • dotnet.dotnet\tools 文件夹存在于 PATH

【问题讨论】:

    标签: c# .net powershell dotnet-tool


    【解决方案1】:

    虽然我确信 your own solution 有所帮助,但值得深入挖掘:

    dotnet.dotnet\tools 文件夹存在于 PATH 中

    要产生你的症状,前者必须是真的,但不能是后者:

    发出错误消息的是dotnet.exe(暗示dotnet.exe 本身确实 PATH 中)。

    错误消息表明无法找到名为script 的工具,这意味着在PATH 中找不到名为dotnet-script.exe 的可执行文件,因为这是dotnet 在后台构建的可执行文件名称致电dotnet script

    通过正确设置 PATH(当然,还安装了 dotnet-script),dotnet-script.exe 应该可以通过 PATH 中的 $HOME\.dotnet\tools 目录找到。

    $HOME\.dotnet\tools 是作为注册表中用户特定路径添加的一部分存储的条目,您的 PowerShell 会话似乎还没有拾取该条目 - 由于您的答案中提到的原因,这可能会发生。

    【讨论】:

      【解决方案2】:

      我解决了:

      1. 删除旧的 PATH 条目以防 PATH 太大 (source)
      2. 重新启动计算机,因为即使在关闭/重新打开所有 PowerShell 实例 (source) 之后 PowerShell 的 $env:PATH 也没有更新

      【讨论】:

      • 好指点,但请注意@BradleyDotNET 的回答适用于您的方案。
      【解决方案3】:

      很可能包含dotnet 的文件夹不在您的PATH 环境变量中。将其添加到该变量中。

      另外请注意,如果您同时安装 x86 和 x64 版本,dotnet 将安装在 两个 位置,并且如果两者都在 PATH 中,则只会选择一个。这会在更新时导致非常奇怪的结果!

      【讨论】:

      • 这可能是原因。这是一个显示如何将其添加到 PATH 的链接:github.com/dotnet/cli/issues/5148
      • 我应该澄清一下,这是特定于 PowerShell 的。 dotnet.dotnet\tools 出现在 PATHdotnet scriptcmd.exe 中工作。问题已编辑。
      • 这不可能是原因,因为问题中的错误消息是由dotnet.exe 发布 暗示dotnet 本身确实在PATH 中。请注意错误消息如何抱怨dotnet-script,而不是dotnet
      猜你喜欢
      • 2016-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      • 2018-01-30
      相关资源
      最近更新 更多