Home > other >  Why am I getting warnings that analysers are not found?
Why am I getting warnings that analysers are not found?

Time:07-02

I created a toy project for checking out the latest .NET 7 (preview-5) and the regex code generation. It worked great, so I applied the same changes to an existing project (not for production, but for personal productivity). For some reason, I’m getting these warnings:

CS8032  An instance of analyzer Microsoft.CodeAnalysis.CSharp.ValidateFormatString.CSharpValidateFormatStringDiagnosticAnalyzer cannot be created from C:\Program Files\dotnet\sdk\7.0.100-preview.5.22307.18\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CSharp.CodeStyle.dll : Could not load file or assembly 'Microsoft.CodeAnalysis.CSharp, Version=4.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Das System kann die angegebene Datei nicht finden..
CS8032  An instance of analyzer Microsoft.CodeAnalysis.CSharp.UseUTF8StringLiteral.UseUTF8StringLiteralDiagnosticAnalyzer cannot be created from C:\Program Files\dotnet\sdk\7.0.100-preview.5.22307.18\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CSharp.CodeStyle.dll : Exception has been thrown by the target of an invocation..
CS8033  The assembly C:\Program Files\dotnet\sdk\7.0.100-preview.5.22307.18\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CodeStyle.dll does not contain any analyzers.

The text Das System kann die angegebene Datei nicht finden.. translates to “The system cannot find the specified file,” but this is a DeepL translation and the actual English error message may be different.

Of the first two, it’s over 200 similar-spirited them with differing analyzers.

The toy project was a console application, the problematic project is a Windows Forms application, if this is somehow relevant. This is the – I believe – relevant part of the .csproj file:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net7.0-windows</TargetFramework>
    <Nullable>enable</Nullable>
    <UseWindowsForms>true</UseWindowsForms>
    <ImplicitUsings>disable</ImplicitUsings>
    <AnalysisLevel>latest-all</AnalysisLevel>
    <EnforceCodeStyleInBuild>True</EnforceCodeStyleInBuild>
    <LangVersion>preview</LangVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Svg" Version="3.4.2" />
  </ItemGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <WarningLevel>1</WarningLevel>
    <CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <WarningLevel>1</WarningLevel>
    <CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
  </PropertyGroup>
</Project>

I also tried commenting-out the Svg dependency and the code that uses it. That changed nothing notably.

And, for comparison and completion, this is the .csproj file of the toy project:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <LangVersion>preview</LangVersion>
    <TargetFramework>net7.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
</Project>

I do not understand why the analyzers aren’t found. The DLLs are definitely there. I suspect that it’s the Version=4.3.0.0 part, but I have no idea what that version refers to, which one would be correct and where I’d specify that.

One answer I found told me to use <TargetFrameworks>net7.0-windows;netstandard-2.0</TargetFrameworks> (or something very similar), but that didn’t work.

I’ve searched the internet for a few hours now, and it appears that no one has had this problem so far; solutions for similar issues didn’t work for me.

CodePudding user response:

This is a Visual Studio issue caused by EnforceCodeStyleInBuild property in .csproj file (in combination with the preview version of .NET 7). Building project with dotnet build instead of VS produces no warnings (or removing EnforceCodeStyleInBuild). Submitted issue for VS.

  • Related