升级.NET Core SDK 3.1.420后NuGet还原找不到win-x64 Host包
问题背景
通过Windows Update自动升级至.NET Core SDK 3.1.420版本后,构建服务器上的解决方案出现构建失败问题,故障原因为NuGet还原流程无法还原Microsoft.NETCore.App.Host.win-x64包。
当前环境的nuget.config中仅配置了内部本地包源,未配置nuget.org源,且环境不允许直接访问该官方源。
执行还原命令得到如下输出:
c:\> nuget.exe restore ***.sln -NoCache -NonInteractive -ConfigFile .nuget\NuGet.config [...] Errors in C:\build\_work\313\s\***.csproj NU1101: Unable to find package Microsoft.NETCore.App.Host.win-x64. No packages exist with this id in source(s): ***, ***, *** NuGet Config files used: C:\build\_work\313\s\.nuget\NuGet.config Feeds used: https://***.com/tfs/***/_packaging/A***/nuget/v3/index.json https://***.com/tfs/***/_packaging/B***/nuget/v3/index.json https://***.com/tfs/***/_packaging/C***/nuget/v3/index.json
当前运行环境的SDK安装信息如下:
C:\build\_work\313\s>dotnet --list-sdks 3.1.420 [C:\Program Files\dotnet\sdk] 5.0.400 [C:\Program Files\dotnet\sdk] 5.0.408 [C:\Program Files\dotnet\sdk]
待排查问题
Microsoft.NETCore.App.Host.win-x64的相关内容本应属于已安装SDK的内置组件,为何还原流程仍会尝试从NuGet源拉取对应包?- 当前环境已安装3.1.26版本的对应组件,为何还原流程仍尝试访问不存在的3.1.25版本路径?
已执行的排查操作
- 已使用Sysinternals套件中的Process Monitor工具分析
nuget.exe的运行行为,发现程序尝试访问路径c:\Program Files\dotnet\packs\Microsoft.NETCore.App.Host.win-x64\3.1.25\,但该路径不存在;SDK升级完成后,对应目录下仅存在3.1.26版本的文件夹。 - 在本地开发机上执行相同还原操作可正常运行,本地NuGet缓存中不存在该包,还原流程会正常访问
c:\Program Files\dotnet\packs\Microsoft.NETCore.App.Host.win-x64\3.1.26\路径。 - 已尝试重新安装对应版本SDK,问题未得到解决。
内容的提问来源于stack exchange,提问作者lg2de
相关产品推荐
相关产品推荐

