dotnet publish遇Microsoft.Web.LibraryManager.Build.RestoreTask异常求助
dotnet publish 时 Microsoft.Web.LibraryManager.Build 报错问题咨询
问题详情
- 执行
dotnet publish时,Microsoft.Web.LibraryManager.Build组件引发报错,该问题曾是已知问题并在2.1.76版本中修复。 - 当前使用LibraryManager最新版本2.1.175(VS2017环境,.NET Core 2.1.509),但仍出现相同错误,现寻求同类问题案例及临时解决办法。
报错日志
C:\Users\teamcitybuild\.nuget\packages\microsoft.web.librarymanager.build\2.1.175\build\Microsoft.Web.LibraryManager.Build.targets(35,9): error MSB4018: The "Microsoft.Web.LibraryManager.Build.RestoreTask" task failed unexpectedly. [C:\TeamCity\buildAgent\work\bbac78e917f81a30\Source\...] C:\Users\teamcitybuild\.nuget\packages\microsoft.web.librarymanager.build\2.1.175\build\Microsoft.Web.LibraryManager.Build.targets(35,9): error MSB4018: System.TypeInitializationException: The type initializer for 'Microsoft.Web.LibraryManager.Cache.WebRequestHandler' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Microsoft.Web.LibraryManager.Configuration.Settings' threw an exception. ---> System.IO.FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. Could not find or load a specific file. (Exception from HRESULT: 0x80131621) [C:\TeamCity\buildAgent\work\bbac78e917f81a30\Source\...] C:\Users\teamcitybuild\.nuget\packages\microsoft.web.librarymanager.build\2.1.175\build\Microsoft.Web.LibraryManager.Build.targets(35,9): error MSB4018: at Microsoft.Web.LibraryManager.Configuration.Settings..ctor() [C:\TeamCity\buildAgent\work\bbac78e917f81a30\Source\...] C:\Users\teamcitybuild\.nuget\packages\microsoft.web.librarymanager.build\2.1.175\build\Microsoft.Web.LibraryManager.Build.targets(35,9): error MSB4018: at Microsoft.Web.LibraryManager.Configuration.Settings..cctor() [C:\TeamCity\buildAgent\work\bbac78e917f81a30\Source\...] C:\Users\teamcitybuild\.nuget\packages\microsoft.web.librarymanager.build\2.1.175\build\Microsoft.Web.LibraryManager.Build.targets(35,9): error MSB4018: --- End of inner exception stack trace --- [C:\TeamCity\buildAgent\work\bbac78e917f81a30\Source\...] C:\Users\teamcitybuild\.nuget\packages\microsoft.web.librarymanager.build\2.1.175\build\Microsoft.Web.LibraryManager.Build.targets(35,9): error MSB4018: at Microsoft.Web.LibraryManager.Configuration.ProxySettings.get_Default() [C:\TeamCity\buildAgent\work\bbac78e917f81a30\Source\...] C:\Users\teamcitybuild\.nuget\packages\microsoft.web.librarymanager.build\2.1.175\build\Microsoft.Web.LibraryManager.Build.targets(35,9): error MSB4018: at Microsoft.Web.LibraryManager.Cache.WebRequestHandler..cctor() [C:\TeamCity\buildAgent\work\bbac78e917f81a30\Source\...] C:\Users\teamcitybuild\.nuget\packages\microsoft.web.librarymanager.build\2.1.175\build\Microsoft.Web.LibraryManager.Build.targets(35,9): error MSB4018: --- End of inner exception stack trace --- [C:\TeamCity\buildAgent\work\bbac78e917f81a30\Source\...] C:\Users\teamcitybuild\.nuget\packages\microsoft.web.librarymanager.build\2.1.175\build\Microsoft.Web.LibraryManager.Build.targets(35,9): error MSB4018: at Microsoft.Web.LibraryManager.Build.Contracts.Dependencies.Initialize() [C:\TeamCity\buildAgent\work\bbac78e917f81a30\Source\...] C:\Users\teamcitybuild\.nuget\packages\microsoft.web.librarymanager.build\2.1.175\build\Microsoft.Web.LibraryManager.Build.targets(35,9): error MSB4018: at Microsoft.Web.LibraryManager.Build.RestoreTask.Execute() [C:\TeamCity\buildAgent\work\bbac78e917f81a30\Source\...] C:\Users\teamcitybuild\.nuget\packages\microsoft.web.librarymanager.build\2.1.175\build\Microsoft.Web.LibraryManager.Build.targets(35,9): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [C:\TeamCity\buildAgent\work\bbac78e917f81a30\Source\...] C:\Users\teamcitybuild\.nuget\packages\microsoft.web.librarymanager.build\2.1.175\build\Microsoft.Web.LibraryManager.Build.targets(35,9): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask) [C:\TeamCity\buildAgent\work\bbac78e917f81a30\Source\...]
临时解决办法
- 绑定Newtonsoft.Json版本:在项目的
.csproj文件中添加程序集绑定重定向,指定与项目实际引用匹配的Newtonsoft.Json版本:
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="你的项目实际引用版本号" /> </dependentAssembly> </assemblyBinding> </runtime>
- 禁用构建时还原:如果不需要构建阶段自动还原库,可在
.csproj中关闭该任务:
<PropertyGroup> <LibraryManagerRestore>false</LibraryManagerRestore> </PropertyGroup>
- 清理NuGet缓存:执行命令清理缓存后重新还原依赖:
dotnet nuget locals all --clear dotnet restore
- 降级LibraryManager版本:暂时切换到已知修复该问题的2.1.76版本,修改
.csproj中的版本引用:
<PackageReference Include="Microsoft.Web.LibraryManager.Build" Version="2.1.76" />
内容的提问来源于stack exchange,提问作者GeorgeMaharis
相关产品推荐
相关产品推荐

