A fter referencing a .NET Standard 2.0 project in a .NET 4.8 ASP.NET MVC project, the project failed ant runtime with the following error message:
CS0012: The type 'System.Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
Whoops! Let me explain how I fixed the problem.
The solution – Part I
I first tried to add the NETStandard.Library nuget package to the .NET 4.8 project but that didn’t made the error disappear.(Although I come back to this in Part II below).
So I removed the nuget package again and instead I did the following:
- I manually edited the csproj file and added the following reference:
- I also updated the reference and set Copy Local=true
After doing that the error disappeared and the application ran successfully on my local machine.
Victory…
… or not? After committing the updated project, a colleague contacted me that he wasn’t able to compile it on his machine as Visual Studio complained that he couldn’t find the netstandard reference.
The solution – Part II
The solution was to move back to my original attempt and also add the NETStandard.Library nuget package to the .NET 4.8 project:
That finally fixed the problem…