Newget(版本7.0.1(中的Newtonsoft.Json版本在运行代码分析时给出以下错误消息。
CA0001 : Could not resolve reference to mscorlib, Version=2.0.5.0, ...
错误发生在面向 .Net 4.5、Windows 8 和 Core 5.0 ASP.NET 的可移植类库中
如果可移植类库面向 .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 目标和代码分析。
CodeAnalysisAdditionalOptions /assemblyCompareMode:None
添加到 .csproj 文件来避免此错误:
<?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>
似乎该错误已在版本 9.0.1 中修复。