Ответ 1
Вы можете использовать Directory.Build.props
и Directory.Build.targets
, чтобы добавить свойства и цели в свои проекты.
Я хочу обеспечить качество кода и согласованные стили в моей организации.
Для этого я планирую добавить Roslyn Analyzers и StyleCop в мои проекты.
Чтобы соответствовать нашим согласованным стандартам кодирования, эти анализаторы нуждаются в дополнительной настройке. В идеале они должны быть настроены с использованием .editorconfig, например, или, если это невозможно, с использованием наборов правил.
В моей организации у нас много проектов, много решений, много репозиториев. Я хочу обеспечить соблюдение этих стандартов как можно более широко. Я не хочу добавлять все пакеты и конфигурации анализатора в каждый проект, есть ли лучший, более простой и последовательный способ добиться этого?
У меня есть идея, что я мог бы создать пакет NuGet для своей организации, который бы включал в мою организацию выбранных анализаторов, любую конфигурацию и даже любые пользовательские анализаторы, которые могут быть созданы. Этот "пакетный" пакет можно добавить в каждый проект, избегая утомительного и подверженного ошибкам повторения. Это возможно, это даже хорошая идея? Кто-нибудь еще сделал это?
Вы можете использовать Directory.Build.props
и Directory.Build.targets
, чтобы добавить свойства и цели в свои проекты.
Есть несколько вещей, которые вы можете сделать
Добавить пакет NuGet в проект (это то, что мы делаем на нашем рабочее место), мы добавили StyleCop и FxCop с нашими индивидуальными настройками. Это работает. Распределение очень легко в это дело.
Добавьте Directory.Build.props и Directory.Build.targets как @Paulo Morgado упомянуто - их можно настраивать на уровне проекта и решения
Вы также можете использовать editorConfig. Это широко применяется. И FxCop, и StyleCop очень хорошо работают с editorConfig. EditorConfig также может быть упакован в Nuget и распространен. Интеграция FXCop с EditorConfig.
Например, чтобы создать пакет nuget, создайте библиотеку .netstandard с файлом .nuspec, самый простой пример -
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<dependencies>
<dependency id="StyleCop.Analyzers" version=""/>
<dependency id="Microsoft.CodeAnalysis.FxCopAnalyzers" version=""/>
</dependencies>
</metadata>
</package>
И, конечно, вы можете включить свои собственные правила кодирования, а также включить их.