#c# #visual-studio #code-analysis
Вопрос:
У меня есть несколько наборов правил анализаторов, с которыми я работаю CodeAnalysisRuleSet
. Некоторые из них автоматически вводятся по всей компании (с помощью файла реквизитов в указанном пакете nuget), но есть несколько случаев, когда я хочу переопределить несколько правил для моего конкретного решения или проекта.
Использование только введенного набора правил работает так, как ожидалось. Использование только набора правил решения работает. Но при использовании обоих, работает только введенный, другой игнорируется. Даже правила, которые являются исключительными для набора правил решения, игнорируются.
Могу ли я каким-то образом объединить два набора правил, не ссылаясь на оба в одном родительском файле? Поскольку это пакет nuget, я не могу использовать Include, так как файлы nuget находятся в какой-то кэшированной папке…
Правка 1:
Я также пытался использовать Include в файле пакета nuget, но путь не может обрабатывать хорошо известные пути MSBuilds (например, MSBuildProjectDirectory или что-то в этом роде).
Ответ №1:
Я понял это: я добавил импортированный набор правил в Directory.build.props и перезаписал набор правил в Directory.build.targets.
Важно добавить полный файл набора правил, а не только дельту, так как он не объединен.
Также обязательно очистите решение и закройте/снова откройте visual studio. Изменения вступают в силу не сразу (по крайней мере, с 2022 года)