问题描述
我正在使用此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,然后再次恢复。