nuget restore突然停止为mcr.microsoft.com/dotnet/framework/sdk docker image正常工作

问题描述

我正在使用此docker映像构建我的.net项目

mcr.microsoft.com/dotnet/framework/sdk

这些是在gitlab ci中构建项目的最后几行

- nuget restore temp\src\Watson.ConnectivityServer\Lib\Swc.EL.Interfaces\Swc.EL.Interfaces.csproj
- msbuild temp\src\Watson.ConnectivityServer\Lib\Swc.EL.Interfaces\Swc.EasitraxLive.Interfaces.csproj /p:Configuration=Release

直到两三天后,它运行良好。从昨天开始突然开始给我这些错误

资产文件 'C:\ builds \ engineering \ e-connect \ swc \ watson \ temp \ src \ Watson.ConnectivityServer \ Lib \ Swc.EL.Interfaces \ obj \ project.assets.json' 没有针对“ net451”的目标。确保还原已运行,并且 您已在TargetFrameworks中为您添加了“ net451” 项目。

任何地方都没有改变。

经过很多次敲打,我可以弄清楚nuget restore行是引起此问题的原因。 nuget无法以某种方式正确还原软件包。 因为当我使用dotnet restore时可以正常工作。因此,基本上,当我用它替换恢复线时,它可以完美运行

- dotnet restore temp\src\Watson.ConnectivityServer\Lib\Swc.EL.Interfaces\Swc.EasitraxLive.Interfaces.csproj

它突然停止工作的原因可能是什么? Docker映像中可能会有一些变化吗?

仅此而已,我的项目就针对多个框架,并且看起来仅对具有多个目标框架的项目失败了

<PropertyGroup>
  <TargetFrameworks>netcoreapp2.0;net451</TargetFrameworks>
</PropertyGroup>

但是对于这些项目,同样的事情也可以更早地发挥作用!

有线索吗?

解决方法

对于PowerToys,我们最近遇到了这个问题。在CI中,我们从NuGet 5.5更改为5.8,然后再次恢复。

这里是PR https://github.com/microsoft/PowerToys/pull/8142