Newtonsoft.Json导致Visual Studio 2015代码分析失败

4
在运行代码分析时,NuGet中的Newtonsoft.Json版本(版本7.0.1)会出现以下错误消息。
CA0001 : Could not resolve reference to mscorlib, Version=2.0.5.0, ...

错误发生在便携式类库中,该类库针对 .Net 4.5、Windows 8 和 ASP.NET Core 5.0。
如果便携式类库的目标是 .Net 4.6、Windows Universal 10 和 ASP.NET Core 5.0,则不会出现错误。
我使用 Newtonsoft.Json 源代码并编译为针对 .Net 4.5、Windows 8 和 ASP.NET Core 5.0 的便携式类库。然后,我引用了我编译的程序集,而不是 NuGet 包。在这种情况下,代码分析问题不会发生。
请注意,我使用运行在 Windows 10 上的 Visual Studio 2105。由于其他依赖项,将目标设置为 .Net 4.6 对我来说不是一个选项。
请告诉我如何使 NuGet 包适用于我所需的特定 PCL 目标和代码分析的好方法。

我在使用旧版本的Json.NET时遇到了同样的问题。 - Steven Liekens
2个回答

0
您可以通过向 .csproj 文件添加 CodeAnalysisAdditionalOptions /assemblyCompareMode:None 来避免该错误:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  ...
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    ....
    <CodeAnalysisAdditionalOptions>/assemblyCompareMode:None</CodeAnalysisAdditionalOptions>
    ....
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    ....
    <CodeAnalysisAdditionalOptions>/assemblyCompareMode:None</CodeAnalysisAdditionalOptions>
    ....
  </PropertyGroup>
  ....
</Project>

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接