【发布时间】:2020-06-09 16:58:31
【问题描述】:
.NET Core 全局工具在某些 Windows 计算机上安装失败并出现此错误:
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.Lambda.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 Core SDK/运行时、Visual Studio,然后自行安装 .NET Core 并尝试安装工具。
- 回滚到 .NET Core 3.1.101(最初的尝试是在 3.1.102 上)。
- 从安装成功的计算机上复制 .nupkg 并将其用作
--add-source的文件参数(我知道,这很远)。 - 在安装期间指定特定的
--version。
我已经确定了一种解决方法:将 C:\Users\myUser.dotnet\tools 从安装成功的计算机复制到安装失败的计算机上的相同位置。这样做允许使用全局工具,就好像安装成功一样。当然,这不是最佳解决方案,但我会提到它,以防它有助于更好地理解潜在问题。
我不知道dotnet tool install 命令的内部工作原理,但我可以很容易地想象“找不到路径的一部分......”是一种方法的失败,它期望一些下载的内容是放在一个临时文件夹中,但发现情况并非如此。如果这是真的,那么这可能是(如错误所示)下载失败的结果......日志只是没有告诉我它未能下载什么资源,而且我无法找到 .nupkg用于 Github 上的 Amazon.Lambda.Tools(尝试手动指定 URL)。
此问题是否有已知的解决方案?如果没有,那么我是否可以采取任何进一步的步骤来诊断工具安装?我确信报告的错误“找不到路径的一部分...”只是我通过控制台看不到的错误的副作用。
【问题讨论】:
-
谢谢。我用另一台电脑安装dotnet工具,复制`c:\Users\lindexi\.dotnet\tools`文件夹修复。
标签: c# visual-studio .net-core aws-lambda