Відключення візуальної студії пропущеного попередження про коментарі XML


199

У мене є проект із понад 500 Missing XML Commentпопередженнями. Я знаю, що можу видалити функцію коментарів XML або вставити порожні фрагменти коментарів скрізь, але я вважаю за краще загальне рішення, де я можу внести одну зміну, яка б вимкнула всі попередження цього типу.

Що я зараз роблю

///<Summary>
/// 
///</Summary>

або

#pragma warning disable 1591

було просто цікаво, якщо це можливо.


3
Яке власне питання? Чи хотіли б ви знати інший спосіб відключення попереджень, які створюються, коли коментарі XML відсутні? У властивостях проекту перейдіть на вкладку "Збірка" та зніміть прапорець "Файл документації XML". Однак я б радив не придушувати попередження, а додати відсутню документацію.
Gorgsenegger

Це абсолютно правильно, але було просто цікаво про те, як, якщо ми зможемо вирішити це з одного місця, як я був новачок у цьому.
Nivid Dholakia

Ці суміжні питання можуть допомогти: stackoverflow.com/questions/11444631 / ... stackoverflow.com/questions/3630282 / ...
Mightymuke

1
Попередження з’являється лише для членів, видимих ​​для інших зборів. Часто люди роблять заняття (і інтерфейси, перерахунки тощо) publicбез поважних причин. У цьому випадку легким (і на мою думку гарним) виправленням є просто видалити слово public(або замінити його зайвим internalключовим словом, залежно від бажаного стилю) із самого зовнішнього типу, що обговорюється. Тоді всі попередження CS1591 щодо цього типу та його членів зникають. Звичайно, можливо, вам доведеться зберегти деякі типи public. Але в цьому випадку справедливо, що вам потрібно задокументувати їх публічні частини належним чином.
Джеппе Стіг Нільсен

Відповіді:


318

Як було запропоновано вище, загалом я не думаю, що ці попередження слід ігнорувати (придушувати). Підводячи підсумок, способами навколо попередження було б:

  • Придушити попередження шляхом зміни проекту Properties> Build> Errors and warnings> Suppress warningsввівши тисячі п'ятсот дев'яносто один
  • Додайте теги документації XML ( GhostDoc може бути дуже зручним для цього)
  • Придушіть попередження за допомогою параметрів компілятора
  • Знімають «Файл документації XML» прапорець в проекті Properties> Build>Output
  • Додайте #pragma warning disable 1591вгорі відповідного файлу та #pragma warning restore 1591внизу

179
Будь ласка, не використовуйте GhostDoc. Якщо коментар можна зробити з назви методу, він може зробити висновок краще людиною. Це додає нульове значення. Цього часу краще витратити, вітаючи себе з добре названим методом.
JRoughan

24
Я не погоджуюся, GhostDoc допомагає мені швидко додати необхідний список параметрів і тег повернення (якщо метод недійсний). Мені це дуже подобається, і я знаю ще чимало інших людей, які теж роблять це. Однак правда, що опис у резюме може потребувати певного редагування, але це враховує більшість автоматизмів у таких випадках.
Gorgsenegger

32
Якби все це було для додавання заповнювачів, було б непогано заощадити час, але кількість баз кодів, які я бачив, де розробники залишають створений текст, змушує нас вважати, що ми просто недостатньо зрілі, щоб використовувати його. Коментарі - це (часто необхідна) милиця для коду, який не є самодокументованим, і, пропонуючи ярлики, цей інструмент має негативну чисту користь для коду світів.
JRoughan

25
@JRoughan: Я повністю згоден. Найгірше, що, коли ви нарешті знайдете час для належного документування коду, ці інструменти унеможливлюють визначення того, наскільки ретельним є ваше реальне охоплення документацією. Будь-який інструмент, який розраховує охоплення документацією, завжди буде читати 100%. Тож вам буквально доведеться пройти через розумно виснажливу задачу - прочитати кожен коментар XML та оцінити, чи достатньо для документування коду. Зробивши це у великому проекті, можу вам сказати, це зовсім не весело. Будь ласка, люди! Не використовуйте ці інструменти для автоматичної документації!
HiredMind

36
@Gorgsenegger: Не в цьому випадку. Це не той інструмент, який хибний, це вся концепція. VS2012 додає заглушки методу / параметрів до стандартизованих коментарів XML, якщо це те, що ви хочете. Але додавання коментарів, що є просто довшими версіями назв методу, і називання його документацією - лише візуальне загроза.
HiredMind

74

Вимкніть попередження: Перейдіть до властивостей проекту (Клацніть правою кнопкою миші на проект та виберіть Властивості у контекстному меню) Перейдіть на вкладку Створення введіть тут опис зображення

Додайте 1591 до текстового поля Suppress попередження введіть тут опис зображення


5
Працює як шарм із списками, розділеними комами: "S125, CS1591, S1172". Після побудови попередження зникли.
AFD

10
Дякуємо, що відповіли на запитання та не читали лекцій щодо придушення попередження чи ні!
Даль,

31

Ви також можете змінити .csprojфайл свого проекту, щоб він містив <noWarn>1591</noWarn>тег всередині першого <PropertyGroup>. Спочатку зі статті Олександра Букура

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    ...
    <NoWarn>1591</NoWarn>
  </PropertyGroup>
  ...
</Project>

3
Це має бути одяг для поточних днів.
Едгар Салазар

3
Домовились. Більшість відповідей не працює з іншими редакторами, такими як Visual Studio Code.
Кшиштоф Чеушняк

9

Перейдіть до властивостей проекту та зніміть прапорець у параметрі генерування документа XML.

Зніміть прапорці з файлом документації XML

Перекомпілюйте і попередження повинні пройти.


2
Це хороший підхід до тих пір, поки вам не потрібно створювати документи XML і ви не заперечуєте, що коментарі XML не будуть перевірені.
Кіт

1
Це не працює, якщо ви хочете зберегти попередження з файлів, які не генеруються автоматично. Видалення всіх попереджень просто для позбавлення від набору попереджень для мене здається трохи непосильним. Крім того, у більшості компаній загальноприйнята практика створювати XML-коментарі у всіх файлах, що не містять автоматично створений код. Також користувач попросив рішення, яке не просто видаляє функцію коментарів XML, тому це не дає відповіді на питання.
SubliemeSiem

4

Це був би коментар, але я не зміг його встановити, щоб відповідати обмеженню:

Я б хотів відключити їх лише для імпорту Reference.cs та WebService. Насправді я використовую макрос, щоб зробити це для файлу. Просто відкрийте файл та виконайте цей макрос (випробуваний у VS2010):

Sub PragmaWarningDisableForOpenFile()
    DTE.ActiveDocument.Selection.StartOfDocument()
    DTE.ActiveDocument.Selection.NewLine()
    DTE.ActiveDocument.Selection.LineUp()
    DTE.ActiveDocument.Selection.Insert("#pragma warning disable 1591")
    DTE.ActiveDocument.Selection.EndOfDocument()
    DTE.ActiveDocument.Selection.NewLine()
    DTE.ActiveDocument.Selection.Insert("#pragma warning restore 1591")
    DTE.ActiveDocument.Save()
End Sub

Дійсно немає способу зробити це автоматично? Вам доведеться повторювати це кожен раз, коли автоматично згенерований код замінить файл.


2
Я думаю, що це попередження не повинно з’являтися для автоматично створеного вмісту, можливо, вам доведеться перевірити відповідне налаштування у властивостях проекту.
Gorgsenegger

1
Ні, все це показано просто ввімкненням попереджень XML-коментарів. І немає такої можливості відключити його лише для автогенерованого коду. Для цього знімається, коли вам потрібно відновити код.
Kjellski

Властивості проекту Code Analysisє опцією Supress results from generated code. Необхідність повторного повторного використання макросу після кожної регенерації коду насправді не є рішенням IMO. Якщо наведена вище опція не працює для вас, можливо, генератор коду може бути налаштований так, щоб автоматично додавати директиву прагми?
Laoujin

@Laoujin дякую за ваш коментар, але, як я вже згадував, мені це рішення також не подобається. Я не можу побачити причину протидії, я без успіху використовував налаштування, про які ви згадуєте. Будь-який шанс спробувати рішення для імпорту WebService?
Kjellski
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.