Подавить предупреждение для всех проектов в Visual Studio
Я видел ответы, показывающие, как подавить предупреждение для конкретной строки кода или для конкретного проекта. Я не хочу этого
Я хочу подавить конкретное предупреждение для всех моих проектов.
(Если это имеет значение, предупреждение IDE0044. И я использую C#.)
4 ответа
Недавнее обновление до Visual Studio 2017 (15.7.1) теперь имеет возможность сделать это. Под Tools->Options
выберите TextEditor->C#->Code Style->General
Вкладка. Под Field preferences
, E сть Prefer readonly
вариант. Установите это в No
,
Также есть editorconfig
настройку, которую вы можете установить, если вы хотите проверить это предпочтение рядом с вашим кодом, чтобы другие, которые потребляют ваш код, не получали предупреждение, но это должно быть сделано для каждого решения отдельно. editorconfig
значение, которое вы установите, будет:
dotnet_style_readonly_field = false:none
Вы можете использовать SuppressMessage
атрибут присутствует под System.Diagnostics.CodeAnalysis
пространство имен как
[SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "args")]
Ну, как вы отредактировали, говоря, что я хочу подавить конкретное предупреждение для всех моих проектов
Вы не можете сделать это для всего проекта мудрым AFAIK. Но проверьте связанный пост один раз, если это поможет
Вы можете попробовать использовать Directory.Build.props, добавив свойство NoWarn для конкретных предупреждений. Я не проверял это все же.
И, как сказано в другом ответе, лучше устранить основную причину, а не игнорировать ее.
Чтобы подавить предупреждения для всех проектов, вам необходимо создать .editorconfig
файл в каталоге верхнего уровня. Например, у меня есть мой в багажнике, и я передаю его в систему управления версиями, чтобы мои коллеги использовали одни и те же настройки.
Настройки в этом файле применяются ко всем проектам в основной и подпапках, если они не отменены другим .editorconfig
файл ниже по дереву папок, например, у вас может быть файл EditorConfig для конкретного проекта во вложенной папке с другими настройками. Дополнительные сведения см. В разделе Иерархия и приоритет файлов.
Создание файла EditorConfig
Вы можете использовать для этого текстовый редактор, если хотите изменить только один конкретный параметр. Однако Visual Studio может создать.editorconfig
файл с разумными значениями по умолчанию для.NET. Из MSDN:
Создать новый проект
В строке меню выберите " Проект" > " Добавить новый элемент"; или нажмите Ctrl+Shift+A
Выберите
editorconfig File (.NET)
шаблон для добавления файла EditorConfig с предварительно заполненным стилем кода.NET по умолчанию, форматированием и соглашениями об именах
- При желании удалите проект - он нам особо не нужен
Visual Studio 2019 - Создание файла EditorConfig из текущих настроек
В Visual Studio 2019 вы можете вместо этого создать файл EditorConfig из ваших текущих настроек. Просто нажмите следующую кнопку в диалоговом окне Параметры подText Editor > C# > Code Style > General
:
Если вы создаете в текстовом редакторе, вам, вероятно, понадобится это вверху файла, при необходимости скорректированное:
# Remove the line below if you want to inherit .editorconfig settings from higher directories
root = true
# C# files
[*.cs]
Отключение IDE0044 в конфигурационном файле редактора
Чтобы конкретно отключить IDE0044, добавьте или измените следующий параметр в .editorconfig
файл:
dotnet_style_readonly_field = false:none
(В Visual Studio 2019 вы можете установить Prefer readonly
возможность No
под TextEditor-> C# -> Code Style-> General
в параметрах, а затем нажмитеGenerate .editorconfig file from settings
кнопку, как описано выше).
Я хотел бы добавить к сообщению Стивена, что его решение с .editorconfig
file не работал у меня без указания файлов, к которым я хочу применить правило. Например, учитывая, что я хочу применить правило ко всем тестовым файлам и что я следую соглашению об именах, в котором они заканчиваются на "Tests.cs", мне удалось игнорировать правило CA1707 в этих файлах, используя следующее правило:
[*Tests.cs]
dotnet_diagnostics.CA1707.severity = none
Подробнее о моем ответе здесь
IDE0044 это "добавить модификатор только для чтения", так почему бы просто не добавить модификатор?
Предупреждения говорят вам, что вы делаете что-то не так, но приложение скомпилируется.
Лучше всего иметь нулевое предупреждение в идеальном мире.