引入SDK风格.NET Standard项目后,旧.NET Framework方案NuGet还原失败
解决GitLab Runner上.NET Framework + SDK风格.NET Standard项目的NuGet还原问题
升级Runner环境的NuGet.exe版本
旧版NuGet对SDK风格项目的支持存在缺陷,尤其是.NET Standard项目的包还原逻辑。将Runner上的nuget.exe升级到5.x及以上版本(推荐最新稳定版),可以在构建脚本中先下载指定版本:REM 下载NuGet 6.8.0稳定版 powershell -Command "Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/v6.8.0/nuget.exe -OutFile nuget.exe" nuget.exe restore appserver\%~1\%~1.sln单独还原.NET Standard项目
解决方案级别的还原可能未完全覆盖SDK风格项目的包依赖,在全局还原后单独针对类库项目再执行一次还原:nuget.exe restore appserver\%~1\%~1.sln REM 替换为你的.NET Standard类库项目实际路径 nuget.exe restore appserver\%~1\YourNetStandardLib\YourNetStandardLib.csproj -PackagesDirectory packages明确指定NuGet包源
确认Runner环境的NuGet配置包含项目所需的所有包源,构建时可直接在命令中指定:nuget.exe restore appserver\%~1\%~1.sln -Source https://api.nuget.org/v3/index.json;http://your-private-feed-url清理Runner的NuGet缓存
本地NuGet缓存损坏或过期也会导致还原异常,在构建步骤前添加缓存清理命令:nuget.exe locals all -clear
内容的提问来源于stack exchange,提问作者cvb
相关产品推荐
相关产品推荐

