Я хочу сделать это без изменения файлов, поэтому я не получу предупреждения вернутся, если они будут восстановлены. Я также не хочу отключать предупреждения по всему проекту, поскольку обычно они являются полезными предупреждениями. Я также не хочу редактировать пакеты NuGet, поскольку для этого либо потребуется не обновлять их по мере появления новых версий, либо, возможно, придется вносить изменения в новую версию.
Я сделал это. уже много читал, но, очевидно, размещать ссылки «слишком много», поэтому я их удалил. Если хотите их увидеть, просмотрите историю изменений.
Рассматриваемый файл представляет собой Reference.cs для подключенной службы. Он имеет пространство имен Proxy.ProvisioningService, и этот файл содержит пару десятков классов. У меня также есть несколько файлов миграции Entity Framework, в которых та же проблема возникает в совершенно другом решении.
У меня есть файл GlobalSuppressions.cs, в который я хотел бы добавить CS1591 (в частности, ), но моя текущая запись не работает. Другие записи работают для других предупреждений, и я пробовал работать с вариантами приведенного ниже кода, в том числе пытался сопоставить формат других записей, но пока ничего не работает. Я изменил «Сборку» с «Компиляция», удалил MessageId, изменил область видимости на «модуль», «сборку» и «пространство имен и потомки», и я попробовал пару разных способы установки цели.
Код: Выделить всё
[assembly: SuppressMessage("Build", "CS1591:Missing XML comment for publicly visible type or member", Justification = "Generated code", MessageId = "CS1591", Scope = "namespaceanddescendants", Target = "Proxy.ProvisioningService")]
Я пытался заставить Visual Studio 2019 Community Edition автоматически подавлять предупреждение с помощью пункт меню «Анализ» -> «Создать и подавить активные проблемы» -> «Для проекта», но это просто добавило в файл несколько директив #pragma, которые необходимо было бы заменить, если файл был перегенерирован, что Я хочу этого избежать.
В одном из связанных ответов предлагалось написать сценарий для добавления директив #pragma при компиляции, но мне этот сценарий кажется хаком. Я бы предпочел вообще не редактировать сгенерированный код.
Я также не хочу помещать его в Проект -> Свойства -> Сборка -> Подавить предупреждения раздел, так как я хочу, чтобы рукописный код по-прежнему выдавал эти предупреждения.
Другой ответ SE/SO предлагает использовать атрибут GeneratedCodeAttribute, чтобы предотвратить появление предупреждений из сгенерированных файлов. К сожалению, в моем файле это уже есть, и он все еще выдает предупреждения.
Другим предложением было отключить предупреждения для этих сгенерированных файлов:
Чтобы подавить предупреждения о сгенерированном коде в проекте
- Щелкните проект правой кнопкой мыши в обозревателе решений и выберите «Свойства». p>
- Выберите вкладку «Анализ кода».
- Выберите Флажок «Подавить результаты из сгенерированного кода».
Поэтому мой актуальный вопрос:
Как я могу подавить предупреждения, особенно CS1591, из сгенерированных файлов кода без редактирования их и не подавляя предупреждение на протяжении всего проекта?
Подробнее здесь: https://stackoverflow.com/questions/663 ... ting-files
Мобильная версия