本地安装 dotnet 工具使用旧命令名称

Locally installing dotnet tool uses old command name

我已按照 create a dotnet tool and install it locally 的教程进行操作。满意后,我尝试将命令名称从 botsay 更改为 something-else。不幸的是,它总是使用命令名称 botsay 安装。即使我 运行 dotnet tool uninstall,删除项目并重新开始,它仍然使用教程中的名称。我可以更改它的唯一方法是将项目名称更改为其他名称。为什么它使用旧的命令名称,我该如何更改它?

目录结构为:

sources
--My.Project.Name
----nupkg
------My.Project.Name.1.0.0.nupkg
--.config
----dotnet-tools.json

我的 csproj 是:

<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp3.1</TargetFramework>

        <PackAsTool>true</PackAsTool>
        <ToolCommandName>something-else</ToolCommandName>
        <PackageOutputPath>./nupkg</PackageOutputPath>
    </PropertyGroup>

</Project>

dotnet-tools.json 是:

{
  "version": 1,
  "isRoot": true,
  "tools": {
    "my-project-name": {
      "version": "1.0.0",
      "commands": [
        "botsay" <--- I want this to be "something-else"
      ]
    }
  }
}

好的,找到答案了。该软件包是从缓存中安装的。我曾尝试向 dotnet tool install 提供 --no-cache 参数,但没有任何区别。解决方案是:

  1. 运行 nuget locals all -List
  2. 在这些位置之一找到缓存包
  3. 删除它