在NetStandard 2.0类库中使用Newtonsoft库

Tot*_*oto 5 .net c# json.net .net-standard .net-standard-2.0

我正在开发基于NetStandard 2.0框架的类库,以实现多种平台兼容性,并且需要序列化和反序列化对象。因此,我添加了对Newtonsoft库的引用。

问题是我在运行时遇到以下异常:

System.IO.FileNotFoundException:'无法加载文件或程序集'System.ComponentModel.Annotations,版本= 4.2.0.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。该系统找不到指定的文件。'

我试图手动添加对System.ComponentModel.Annotations版本4.2.0.0的引用,但是此版本不可用。

有没有办法将Newtonsoft与NetStandard 2.0一起使用,或者执行序列化/反序列化操作的替代方法?

更新:似乎添加对System.ComponentModel.Annotations“ Version =” 4.4.1“的引用并重建解决方案可以解决此问题。

这是我的csproj文件的内容:

<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>
Run Code Online (Sandbox Code Playgroud)

小智 3

所以我一直在考虑引用 .NETStandard 2.0 中的 Newtonsoft.Json。Newtonsoft.Json.11.0.2 版本中一切都已准备就绪。

〜/packages/Newtonsoft.Json.11.0.2/

在此输入图像描述

只需在 csproj 中引用它,就像这样......

<Reference Include="Newtonsoft.Json">
  <HintPath>..\APAS.WebInterface\packages\Newtonsoft.Json.11.0.2\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)