在创建ASP.NET Core MVC 2.2的项目时,用SVN同步到其他电脑(新装的电脑)时,出现编译错误,内容如下:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 MSB4018 “Microsoft.Web.LibraryManager.Build.RestoreTask”任务意外失败。
System.TypeInitializationException: “Microsoft.Web.LibraryManager.WebRequestHandler”的类型初始值设定项引发异常。 ---> System.TypeInitializationException: “Microsoft.Web.LibraryManager.Configuration.Settings”的类型初始值设定项引发异常。 ---> System.TypeLoadException: 未能从程序集“mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“System.Runtime.InteropServices.OSPlatform”。
在 Microsoft.Web.LibraryManager.Configuration.Settings.get_UserDataRoot()
在 Microsoft.Web.LibraryManager.Configuration.Settings.get_ConfigFilePath()
在 Microsoft.Web.LibraryManager.Configuration.Settings..ctor()
在 Microsoft.Web.LibraryManager.Configuration.Settings..cctor()
--- 内部异常堆栈跟踪的结尾 ---
在 Microsoft.Web.LibraryManager.Configuration.Settings.get_DefaultSettings()
在 Microsoft.Web.LibraryManager.Configuration.ProxySettings.get_Default()
在 Microsoft.Web.LibraryManager.WebRequestHandler..cctor()
--- 内部异常堆栈跟踪的结尾 ---
在 Microsoft.Web.LibraryManager.WebRequestHandler.get_Instance()
在 Microsoft.Web.LibraryManager.Providers.Unpkg.UnpkgProvider..ctor(IHostInteraction hostInteraction)
在 Microsoft.Web.LibraryManager.Providers.Unpkg.UnpkgProviderFactory.CreateProvider(IHostInteraction hostInteraction)
在 Microsoft.Web.LibraryManager.Build.Dependencies.Initialize()
在 Microsoft.Web.LibraryManager.Build.Dependencies..ctor(IHostInteraction hostInteraction, IEnumerable`1 assemblyPaths)
在 Microsoft.Web.LibraryManager.Build.RestoreTask.Execute()
在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
在 Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() BiobaseProductionQrCodeWeb C:\Users\BKZN_ZhuJH\.nuget\packages\microsoft.web.librarymanager.build\2.0.48\build\Microsoft.Web.LibraryManager.Build.targets 35
猛地一看,我也没遇到过这个问题呀,百度一下也没找到相关的解决方案。换个搜索方式进行,切换到bing国际版本,找到一个Pull requests,界面如下,红框标识的地方就是问题的原因:没有安装.net framework 4.7.2导致的。安装上472版本后编译成功
这个为什么会出现这个错误,到现在还没有搞懂,只是把问题解决了。