Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use Newtonsoft library in NetStandard 2.0 class library

Tags:

I am developing a class library based on the NetStandard 2.0 framework for multiple platform compatibility sakes, and I need to serialize and deserialize objects. So I added a reference to the Newtonsoft library.

The problem is that I have the following exception at runtime:

System.IO.FileNotFoundException: 'Could not load file or assembly 'System.ComponentModel.Annotations, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.'

I tried to manually add a reference to the System.ComponentModel.Annotations version 4.2.0.0 but this version is not available.

Is there a way to use Newtonsoft with NetStandard 2.0, or an alternative to perform serialization/deserialization operations?

Update: it seems that adding a reference to System.ComponentModel.Annotations" Version="4.4.1" and rebuilding the solution fixed the problem.

Here is the content of my csproj file:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

    <ItemGroup>
      <PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
      <PackageReference Include="System.ComponentModel.Annotations" Version="4.4.1" />
    </ItemGroup>
</Project>