Visual Studio 安装.NET核心全局工具时出错:“找不到路径的一部分...”

dly7yett  于 2023-01-09  发布在  .NET
关注(0)|答案(4)|浏览(248)

在某些Windows计算机上,.NET核心全局工具安装失败,并出现以下错误:

Failed to install tool package 'amazon.lambda.tools': Could not find a part of the path 'C:\Users\myUser\.dotnet\tools\.store\.stage\xxx.yyy\amazon.lambda.tools'.
Tool 'amazon.lambda.tools' failed to install. This failure may have been caused by:

* You are attempting to install a preview release and did not use the --version option to specify the version.
* A package by this name was found, but it was not a .NET Core tool.
* The required NuGet feed cannot be accessed, perhaps because of an Internet connection problem.
* You mistyped the name of the tool.

For more reasons, including package naming enforcement, visit https://aka.ms/failure-installing-tool

上面的示例尝试安装Amazon λ Tools;但是其它常用工具(例如dotnetsay)给予相同的结果。
我只在一个环境中观察到这一点:我的开发团队将其用作TFS 2017生成代理的Windows Server 2016虚拟机。该服务器已安装Visual Studio 2017和2019,以及Visual Studio 2017和2019生成工具。该服务器不位于代理之后。同一VLAN上的其他Windows Server 2016虚拟机能够成功执行安装。

C:\Users\myUser>dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   3.1.101
 Commit:    b377529961

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.14393
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\3.1.101\

Host (useful for support):
  Version: 3.1.1
  Commit:  a1388f194c

.NET Core SDKs installed:
  3.1.101 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.15 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.15 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.0.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.15 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.0.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.0.2 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 3.1.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

以下操作未成功:

  • 以管理员身份运行。
  • 以各种帐户运行(有些用户名中有“.”,有些没有)。
  • 卸载.NET核心SDK/运行时、Visual Studio,然后自行安装.NET核心并尝试安装工具。
  • 正在回滚到.NET Core 3.1.101(最初尝试是在3.1.102上)。
  • 从安装成功的计算机上复制.nupkg,并将其用作--add-source的文件参数(我知道,这很冒险)。
  • 在安装过程中指定特定的--version

我已经确定了一个解决方法:将C:\Users\myUser.dotnet\tools从安装成功的计算机复制到安装失败的计算机上的相同位置。这样做允许使用全局工具,就像安装成功一样。当然,这不是最佳解决方案,但我提到它是为了更好地理解根本问题。
我不知道dotnet tool install命令的内部工作原理,但我可以很容易地想象“找不到路径的一部分...”是一个方法的失败,该方法希望将一些下载的内容放置在临时文件夹中,但发现并非如此。那么这可能是(如错误所示)下载失败的结果...日志只是没有告诉我下载失败的资源,而且我还没能在Github上找到Amazon.Lambda.Tools的.nupkg(尝试手动指定URL)。
这个问题是否有已知的解决方案?如果没有,我是否可以采取进一步的步骤来诊断工具安装?我确信报告的错误“找不到路径的一部分...”只是一个错误的副作用,我无法通过控制台看到这个错误。

svujldwt

svujldwt1#

我在安装Amazon.Lambda.Tools时遇到了同样的问题,但指定软件包版本为我解决了这个问题:

dotnet tool install --global Amazon.Lambda.Tools --version 4.1.0

运行以下命令时,导致了与您报告的相同的错误

dotnet tool install --global Amazon.Lambda.Tools

要确保您安装的是此软件包的最新版本,请检查nuget feed here

whlutmcx

whlutmcx2#

我在一个新的windows安装中运行命令时遇到了这个。

dotnet tool install --global Amazon.Lambda.Tools

结果发现这个错误非常明显:
错误NU1101:找不到包amazon.lambda.tools。源中不存在具有此ID的包:Microsoft Visual Studio脱机程序包
它只是在Microsoft Visual Studio Offline Packages存储库中查找包。
我运行了Visual Studio 2019,然后从那里检查了Nuget的包源设置,然后再次运行命令,它安装得很好。

piwo6bdm

piwo6bdm3#

我遇到了同样的问题。经过多次迭代后,我发现我的MSBuildSDKsPath是错误的。是C:\Program Files\dotnet\sdk\5.0.400,但应该是C:\Program Files\dotnet\sdk\5.0.400\Sdks。修复并重新启动后,我可以安装工具

0yg35tkg

0yg35tkg4#

我删除了NuGet Config目录中的.config文件并运行了npm install npm
然后我直接从源文件中提取包,这样就解决了我的问题。

dotnet tool install -g --add-source 'https://api.nuget.org/v3/index.json' --ignore-failed-sources Amazon.Lambda.Tools

相关问题