【问题标题】:Code analysis for dotnet core project in VS2017VS2017中dotnet core项目的代码分析
【发布时间】:2017-10-26 02:57:16
【问题描述】:

我想为我的 dotnet 核心项目添加代码分析(FxCop,而不是 StyleCop),它针对的是 netcoreapp1.1 框架。 我知道 FxCop 是在 MSBuild 中构建的,但是当我启用它时,我一直收到错误:

1>MSBUILD:错误:CA0055:无法识别“C:\Dev\easycube\EasyCube.Authentication\bin\Debug\netcoreapp1.1\EasyCube.Authentication.dll”的平台。 1>MSBUILD:错误:CA0052:没有选择目标。

然后我发现dotnet核心分析器Microsoft.NetCore.Analyzers有Nuget包,但是不知道怎么用。有人知道如何在项目中设置它吗?

谢谢。

【问题讨论】:

  • 分析仪的运行情况如何?如果我直接运行 FxCop,我会遇到类似的问题。我不能在 dotnet build 中使用分析开关。
  • @illvm 我将包 Microsoft.CodeAnalysis.FxCopAnalyzers 安装到我的 dotnet 核心项目中,并将“IOperation”添加到 csproj 文件中的 PropertyGroup。 FxCop 分析将在构建项目时运行
  • 可能只是分析仪版本不对的问题。看这里:github.com/dotnet/…

标签: asp.net-core msbuild .net-core code-analysis visual-studio-2017


【解决方案1】:

.Net Core 不支持旧方式的代码分析。

您需要 Nuget 包 Microsoft.CodeAnalysis.FxCopAnalyzers。将其添加到您的项目中,您将收到警告。见here for some more Analyzers

如果您尝试使用 .Net Core 项目在解决方案上运行旧代码分析,您可以通过在项目文件末尾添加自定义目标来为每个项目关闭它(请参阅 here):

<Target Name="IgnoreRunCodeAnalysis" Condition=" '$(RunCodeAnalysis)' == 'true' " BeforeTargets="RunCodeAnalysis">
    <Message Importance="normal" Text="Set RunCodeAnalysisOnThisProject to false" />
    <PropertyGroup>
        <RunCodeAnalysisOnThisProject>false</RunCodeAnalysisOnThisProject>
    </PropertyGroup>
</Target>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 2019-02-05
    • 2018-10-05
    • 1970-01-01
    • 2018-05-01
    相关资源
    最近更新 更多