Почему анализаторы Microsoft не могут найти Microsoft.CodeAnalysis? - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь добавить Microsoft.CodeAnalysis.FXCopAnalyzers (последняя стабильная версия) в мой проект ASP.NET. Когда я устанавливаю его через NuGet, я получаю массу ошибок, таких как:

Экземпляр анализатора Microsoft.CodeQuality.Analyzers.ApiDesignGuidelines.AbstractTypesShouldNotHaveConstructorsAnalyzer не может быть создан из \ packages \ Microsoft.CodeQuality.Analyzers.2.6.3 \ analyzers \ dotnet \ cs \ Microsoft.CodeQuality..dll не может файл или сборка «Microsoft.CodeAnalysis, версия = 2.6.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35» или одна из ее зависимостей. Система не может найти указанный файл.. Экземпляр анализатора Microsoft.CodeQuality.Analyzers.ApiDesignGuidelines.AvoidEmptyInterfacesAnalyzer не может быть создан из \ packages \ Microsoft.CodeQuality.Analyzers.2.6.3 \ analyzers \ dotnet \ cs \ Microsoft.CodeQuality.Analyzers.dll: не удалось загрузить сборку файла или 'Microsoft.CodeAnalysis, версия = 2.6.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35' или одна из его зависимостей. Система не может найти указанный файл.. Экземпляр анализатора Microsoft.CodeQuality.Analyzers.ApiDesignGuidelines.CancellationTokenParametersMustComeLastAnalyzer не может быть создан из \ packages \ Microsoft.CodeQuality.Analyzers.2.6.3 \ analyzers \ dotnet \ cs \ Microsoft.CodeQuality.Analyzers.dll или не загружен. 'Microsoft.CodeAnalysis, версия = 2.6.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35' или одна из его зависимостей. Система не может найти указанный файл ..

Примечание. Для краткости я опустил 127 ошибок. Все они очень похожи. Однако следует отметить, что не все анализаторы находятся в пространстве имен Microsoft.CodeQuality; некоторые находятся в Microsoft.NetCore, а некоторые - в Microsoft.NetFramework.

Так что я говорю хорошо, мне нужно сначала установить Microsoft.CodeAnalysis v2.6.0.0. Кажется странным, что это не будет зависимость, автоматически устанавливаемая NuGet, но как угодно.

Поэтому я отменяю все свои изменения в Git, заново открываю решение, устанавливаю Microsoft.CodeAnalysis v2.6.0.0, а затем устанавливаю последнюю стабильную версию Microsoft.CodeAnalysis.FXCopAnalyzers.

Те же ошибки!

Когда я смотрю в package / Microsoft.CodeAnalysis.2.6.0, я замечаю, что где-то там нет .dll. Как правильно установить это? Является ли установка Microsoft.CodeAnalysis правильным решением? Почему зависимости Microsoft.CodeAnalysis.FXCopAnalyzers не устанавливаются автоматически при его установке? Разве это не весь смысл менеджера пакетов? У меня так много вопросов и так мало ответов. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 28 января 2019

Эта проблема в проекте github анализаторов Roslyn предложила добавить ссылку на Microsoft.Net.Compilers v2.6.1. Я не могу найти этот пакет в цепочке зависимостей для Microsoft.CodeAnalysis.FXCopAnalyzers, но заметил, что в моем проекте установлена ​​версия 1.0.0. Я удалил пакет и установил v2.10.0, и теперь все, кажется, работает как ожидалось.

...