Почему я получаю предупреждения о том, что анализаторы не найдены?

Я создал игрушечный проект для проверки последней версии .NET 7 (предварительная версия-5) и генерации кода регулярных выражений. Это сработало отлично, поэтому я применил те же изменения к существующему проекту (не для производства, а для личной продуктивности). По какой-то причине я получаю эти предупреждения:

      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.

Текст Das System kann die angegebene Datei nicht finden.. переводится как «Система не может найти указанный файл», но это перевод DeepL, и фактическое сообщение об ошибке на английском языке может отличаться.

Из первых двух это более 200 похожих по духу с разными анализаторами.

Игрушечный проект был консольным приложением, проблемный проект — приложением Windows Forms, если это как-то уместно. Это - я полагаю - важная часть файла:

      <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>

Я также попытался закомментировать зависимость Svg и код, который ее использует. Это ничего особо не изменило.

И, для сравнения и завершения, этофайл проекта игрушки:

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

Я не понимаю, почему анализаторы не найдены. DLL точно есть. подозреваю, что эточасть, но я понятия не имею, к чему относится эта версия, какая из них была бы правильной и где бы я это указал.

Один ответ, который я нашел, сказал мне использовать(или что-то очень похожее), но это не сработало.

Я искал в Интернете несколько часов, и оказалось, что до сих пор ни у кого не было этой проблемы; решения для подобных проблем не работали для меня.

Редактировать (2022-12-17): проблема исчезла после обновления VS определенной версии.

2 ответа

Это проблема Visual Studio, вызваннаясвойство в файле .csproj (в сочетании с предварительной версией .NET 7). Строительный проект сdotnet buildвместо VS не выдает предупреждений (или удалениеEnforceCodeStyleInBuild). Представленная проблема для VS.

Обновите Visual Studio версии 2022 или используйте предварительную версию Visual Studio.

Другие вопросы по тегам