Visual Studio Disabilitazione avviso commento XML mancante


198

Ho un progetto con oltre 500 Missing XML Comment avvisi. So che posso rimuovere la funzione Commento XML o incollare frammenti di commenti vuoti ovunque, ma preferirei una soluzione generica in cui posso apportare una modifica che disabiliti tutti gli avvisi di questo tipo.

Quello che faccio adesso è mettere

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

o

#pragma warning disable 1591

era solo curioso di sapere se sarebbe stato possibile.


3
Qual è la vera domanda? Desideri conoscere un altro modo per disabilitare gli avvisi che vengono generati quando mancano i commenti XML? Nelle proprietà del progetto, passare alla scheda "Crea" e deselezionare "File di documentazione XML". Tuttavia, suggerirei di non eliminare gli avvisi ma di aggiungere la documentazione mancante.
Gorgsenegger,

Questo è assolutamente corretto ma era solo curioso di sapere come se potessimo risolverlo da un posto dato che ero nuovo a questo.
Nivid Dholakia,


1
L'avviso viene visualizzato solo per i membri visibili ad altri assiemi. Spesso le persone fanno lezioni (e interfacce, enumerazioni, ecc.) publicSenza una buona ragione. In tal caso, una soluzione semplice (e secondo me buona) è semplicemente quella di rimuovere la parola public(o sostituirla con una internalparola chiave ridondante , a seconda dello stile preferito) dal tipo racchiuso più esterno. Quindi tutti gli avvisi CS1591 su questo tipo e i suoi membri scompaiono. Ovviamente potresti dover mantenere alcuni tipi public. Ma in quel caso è giusto che tu debba documentare correttamente le loro parti pubbliche.
Jeppe Stig Nielsen,

Risposte:


318

Come suggerito sopra, in generale non penso che questi avvertimenti debbano essere ignorati (soppressi). Riassumendo, i modi per aggirare l'avvertimento sarebbero:

  • Eliminare l'avviso modificando il progetto Properties> Build> Errors and warnings> Suppress warningsinserendo 1591
  • Aggiungi i tag di documentazione XML ( GhostDoc può essere molto utile per quello)
  • Elimina l'avviso tramite le opzioni del compilatore
  • Deselezionare la casella di controllo "file di documentazione XML" nel progetto Properties> Build>Output
  • Aggiungi #pragma warning disable 1591nella parte superiore del rispettivo file e #pragma warning restore 1591nella parte inferiore

178
Per favore, per favore non usare GhostDoc. Se un commento può essere dedotto dal nome del metodo, può essere dedotto meglio da un essere umano. Questo aggiunge valore zero. Quel tempo sarebbe meglio trascorrere congratulandosi con te stesso per un metodo ben definito.
JRoughan,

24
Devo essere in disaccordo, GhostDoc mi aiuta ad aggiungere rapidamente l'elenco richiesto di parametri e un tag di ritorno (se il metodo non è nullo). Lo uso e mi piace, e conosco anche altre persone che lo fanno. È vero, tuttavia, che la descrizione nel riepilogo potrebbe richiedere alcune modifiche, ma ciò vale per la maggior parte degli automatismi in tali casi.
Gorgsenegger,

32
Se tutto ciò che facesse fosse aggiungere segnaposto sarebbe un bel po 'di risparmio di tempo, ma il numero di basi di codice che ho visto dove gli sviluppatori lasciano il testo generato ci fa pensare che non siamo abbastanza maturi collettivamente per usarlo. I commenti sono una stampella (spesso necessaria) per il codice che non è auto-documentato e offrendo scorciatoie questo strumento ha un vantaggio netto negativo sul codice dei mondi.
JRoughan,

25
@JRoughan: sono completamente d'accordo. La parte peggiore è che, quando finalmente trovi il tempo per documentare correttamente il tuo codice, questi strumenti rendono impossibile capire quanto sia approfondita la tua vera documentazione. Qualsiasi strumento che calcola la copertura della documentazione leggerà sempre il 100%. Quindi devi letteralmente passare attraverso il compito mentalmente estenuante di leggere ogni commento XML e valutare se è sufficiente documentare il codice. Avendolo fatto su un grande progetto, posso dirti che non è affatto divertente. Per favore gente! Non utilizzare questi strumenti di auto-documentazione!
HiredMind

36
@Gorgsenegger: non in questo caso. Non è lo strumento che è difettoso, è l'intero concetto. VS2012 aggiunge gli stub metodo / parametro ai commenti XML standardizzati se è quello che vuoi. Ma aggiungere commenti che sono semplicemente versioni più lunghe dei nomi dei metodi e chiamarlo documentazione è solo disordine visivo.
Assunto il

74

Disabilita l'avviso: vai alle proprietà del progetto (fai clic con il pulsante destro del mouse sul progetto e scegli Proprietà dal menu contestuale) Vai alla scheda Genera inserisci qui la descrizione dell'immagine

Aggiungi 1591 alla casella di testo Elimina avvisi inserisci qui la descrizione dell'immagine


4
Funziona come un incantesimo con elenchi separati da virgole: "S125, CS1591, S1172". Dopo una costruzione gli avvertimenti sono scomparsi.
AFD

9
Grazie per aver risposto alla domanda e non aver tenuto lezioni sull'opportunità o meno di sopprimere gli avvisi!
Dal

31

Puoi anche modificare il .csprojfile del tuo progetto per includere un <noWarn>1591</noWarn>tag all'interno del primo <PropertyGroup>. Originario dell'articolo di Alexandru Bucur qui

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

3
Questa dovrebbe essere la risposta ai giorni nostri.
Edgar Salazar,

3
Concordato. La maggior parte delle risposte non funziona con altri editor, come Visual Studio Code.
Krzysztof Czelusniak,

9

Vai nelle proprietà del progetto e deseleziona l'opzione genera documento XML.

Deseleziona il file di documentazione XML

Ricompilare e gli avvisi dovrebbero andare via.


2
Questo è un buon approccio purché non sia necessario generare i documenti XML e non ti dispiaccia che i commenti XML non vengano convalidati.
Keith,

1
Questo non funziona se si desidera mantenere gli avvisi dai file che non vengono generati automaticamente. Rimuovere tutti gli avvisi solo per eliminare un sottoinsieme di avvisi mi sembra un po 'eccessivo. Inoltre, nella maggior parte delle aziende, è pratica comune creare effettivamente commenti XML in tutti i file che non contengono codice generato automaticamente. Inoltre, l'utente ha chiesto una soluzione che non rimuova semplicemente la funzione di commento XML, quindi questo non risponde alla domanda.
SubliemeSiem

4

Questo sarebbe stato un commento ma non sono riuscito a farlo rientrare nella limitazione:

Mi piacerebbe disabilitarli solo per le importazioni Reference.cs e WebService. In realtà sto usando una macro per farlo per un file. Basta aprire il file ed eseguire questa macro (testato in 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

Non c'è davvero modo di farlo automaticamente? Dovresti rifarlo ogni volta che il codice generato automaticamente sovrascrive il file.


2
Penso che questo avviso non dovrebbe apparire per i contenuti generati automaticamente, forse dovrai controllare l'impostazione corrispondente nelle proprietà del progetto.
Gorgsenegger,

1
No, è tutto mostrato semplicemente abilitando gli avvisi XML-Comment. E non esiste tale opzione per disabilitarlo solo per il codice generato automaticamente. Pertanto lo snipped quando hai bisogno di rigenerare il codice.
Kjellski

Sotto le proprietà del progetto Code Analysis, c'è un'opzione Supress results from generated code. Dover rieseguire una macro dopo ogni rigenerazione del codice non è davvero una soluzione IMO. Se l'opzione sopra non funziona per te, forse il generatore di codice può essere regolato per aggiungere automaticamente la direttiva pragma?
Laoujin

@Laoujin grazie per il tuo commento, ma come ho già detto non mi piace nemmeno questa soluzione. Non riesco a vedere un motivo per il downvote, ho usato l'impostazione che stai citando senza successo. Qualche possibilità di provare la tua soluzione per le importazioni di WebService?
Kjellski,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.