This error was on nuget 5.X. Upgrading to nuget 6.X seems to fix the issue
NuGet restore of a multi-targeted project yields error MSB4018 "WriteRestoreGraphTask"
We are going through the process of multi-targeting our projects, for the most part it works, things compile.
But for one project we've run into the following stack trace when running nuget restore on the project
MSBuild auto-detection: using msbuild version '17.0.0.45303' from 'C:\Program Files\Microsoft Visual Studio\2022\Preview\MSBuild\Current\bin'.
C:\Users\wpang\AppData\Local\Temp\NuGetScratch\4wcxk1dx.nnr.nugetrestore.targets(160,5): error MSB4018: The "WriteRestoreGraphTask" task failed unexpectedly. [C:\Users\wpang\AppData\Local\Temp\NuGetScratch\npu0my22.xrd.nugetinputs.targets]
C:\Users\wpang\AppData\Local\Temp\NuGetScratch\4wcxk1dx.nnr.nugetrestore.targets(160,5): error MSB4018: System.NullReferenceException: Object reference not set to an instance of an object. [C:\Users\wpang\AppData\Local\Temp\NuGetScratch\npu0my22.xrd.nugetinputs.targets]
C:\Users\wpang\AppData\Local\Temp\NuGetScratch\4wcxk1dx.nnr.nugetrestore.targets(160,5): error MSB4018: at NuGet.Frameworks.AssetTargetFallbackFramework..ctor(NuGet.Frameworks1190085.NuGetFramework framework, IReadOnlyList`1 fallbackFrameworks) [C:\Users\wpang\AppData\Local\Temp\NuGetScratch\npu0my22.xrd.nugetinputs.targets]
C:\Users\wpang\AppData\Local\Temp\NuGetScratch\4wcxk1dx.nnr.nugetrestore.targets(160,5): error MSB4018: at NuGet.Commands.AssetTargetFallbackUtility.GetFallbackFramework(NuGet.Frameworks1190085.NuGetFramework projectFramework, IEnumerable`1 packageTargetFallback, IEnumerable`1 assetTargetFallback) [C:\Users\wpang\AppData\Local\Temp\NuGetScratch\npu0my22.xrd.nugetinputs.targets]
C:\Users\wpang\AppData\Local\Temp\NuGetScratch\4wcxk1dx.nnr.nugetrestore.targets(160,5): error MSB4018: at NuGet.Commands.AssetTargetFallbackUtility.ApplyFramework(TargetFrameworkInformation targetFrameworkInfo, IEnumerable`1 packageTargetFallback, IEnumerable`1 assetTargetFallback) [C:\Users\wpang\AppData\Local\Temp\NuGetScratch\npu0my22.xrd.nugetinputs.targets]
C:\Users\wpang\AppData\Local\Temp\NuGetScratch\4wcxk1dx.nnr.nugetrestore.targets(160,5): error MSB4018: at NuGet.Commands.MSBuildRestoreUtility.AddPackageTargetFallbacks(PackageSpec spec, IEnumerable`1 items) [C:\Users\wpang\AppData\Local\Temp\NuGetScratch\npu0my22.xrd.nugetinputs.targets]
C:\Users\wpang\AppData\Local\Temp\NuGetScratch\4wcxk1dx.nnr.nugetrestore.targets(160,5): error MSB4018: at NuGet.Commands.MSBuildRestoreUtility.GetPackageSpec(IEnumerable`1 items) [C:\Users\wpang\AppData\Local\Temp\NuGetScratch\npu0my22.xrd.nugetinputs.targets]
C:\Users\wpang\AppData\Local\Temp\NuGetScratch\4wcxk1dx.nnr.nugetrestore.targets(160,5): error MSB4018: at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() [C:\Users\wpang\AppData\Local\Temp\NuGetScratch\npu0my22.xrd.nugetinputs.targets]
C:\Users\wpang\AppData\Local\Temp\NuGetScratch\4wcxk1dx.nnr.nugetrestore.targets(160,5): error MSB4018: at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() [C:\Users\wpang\AppData\Local\Temp\NuGetScratch\npu0my22.xrd.nugetinputs.targets]
C:\Users\wpang\AppData\Local\Temp\NuGetScratch\4wcxk1dx.nnr.nugetrestore.targets(160,5): error MSB4018: at NuGet.Commands.MSBuildRestoreUtility.GetDependencySpec(IEnumerable`1 items) [C:\Users\wpang\AppData\Local\Temp\NuGetScratch\npu0my22.xrd.nugetinputs.targets]
C:\Users\wpang\AppData\Local\Temp\NuGetScratch\4wcxk1dx.nnr.nugetrestore.targets(160,5): error MSB4018: at NuGet.Build.Tasks.WriteRestoreGraphTask.Execute() [C:\Users\wpang\AppData\Local\Temp\NuGetScratch\npu0my22.xrd.nugetinputs.targets]
C:\Users\wpang\AppData\Local\Temp\NuGetScratch\4wcxk1dx.nnr.nugetrestore.targets(160,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [C:\Users\wpang\AppData\Local\Temp\NuGetScratch\npu0my22.xrd.nugetinputs.targets]
C:\Users\wpang\AppData\Local\Temp\NuGetScratch\4wcxk1dx.nnr.nugetrestore.targets(160,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() [C:\Users\wpang\AppData\Local\Temp\NuGetScratch\npu0my22.xrd.nugetinputs.targets]
The project is upgraded to the new .NET SDK project style and then the TargetFrameworks are hand edited to include the following
<TargetFrameworks>net40;net5.0-windows</TargetFrameworks>
Not exactly sure why this error is occurring.
Does anyone have any ideas or pointers I can look at to try.
.NET
Not Monitored
2 answers
Sort by: Most helpful
-
-
Erik Frantz 0 Reputation points
2024-07-12T19:06:10.33+00:00 I encountered this issue (on Azure DevOps) by forgetting to pluralize
<TargetFrameworks>
-- that is to say, we had<TargetFramework>net6.0;net8.0</TargetFramework>
rather than<TargetFrameworks>net6.0;net8.0</TargetFrameworks>