公開されているタイプまたはメンバーのXMLコメントがありません


381

「一般公開されているタイプまたはメンバーのXMLコメントがありません」という警告が表示されます。

これを解決するには?


8
これもVisual Studioで見ます。この警告がどのソフトウェアからのものか誰でも知っていますか?スタイル警官?Fx Cop?コード分​​析?どうすればオフにできますか?
大佐パニック

回答:


668

5つのオプション:

  • ドキュメントのコメントを入力します(素晴らしいですが、時間がかかります)
  • (プロジェクトプロパティで)コメント生成をオフにする
  • プロジェクトプロパティの警告を無効にします([プロジェクトプロパティ]で[プロジェクトプロパティ]-> [ビルド]> [エラーと警告](セクション)、警告を非表示(テキストボックス)、1591(カンマ区切りリスト)に移動)。デフォルトではアクティブ構成が変更されます。構成をすべてに変更することを検討してください。
  • #pragma warning disable 1591コードの一部のビットについてのみ警告を無効にするために使用します(#pragma warning restore 1591その後)
  • 警告を無視する(悪い考え-新しい「実際の」警告を見逃す)

5
@ジョン、解決策を見つけました:部分クラスを含む生成コードに対してこの警告が表示された場合は、生成されていない部分クラスの「他の半分」を探します。そこでXMLコメントを追加すると、生成されたコードの警告が消えます。WP7プロジェクトのXAMLコードから生成されたApp.gicsファイルのAppクラスにこの警告がありました。これを解決するには、App.xaml.csファイル(生成されていない)にXMLコメントを追加する必要がありました。
Marcel W

@MarcelW:ああ、それは生成されたメンバーのためではないのですか?とにかく、それらはすべて内部のものですか?それは理にかなっています...
ジョンスキート、

7
また、サービス参照の自動生成コードからこの警告が表示された場合は、サービス参照を右クリックして[サービス参照の構成...]を選択し、[生成されたクラスのアクセスレベル]を[内部]に変更できます。
Lee Grissom、2013年

9
@NickJの説明に従って警告を無効にする場合は、debug \ releaseだけでなく、すべての構成に対して警告を変更していることを確認してください。
Avital 2014年

5
クラス全体のコードを抑制する場合は、これをクラス属性として追加することもできます。[System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Usage"、 "CS1591")]
cr1pto

92

もちろん、公開されている型とメンバーにXMLコメントを追加します:)

///<Summary>
/// Gets the answer
///</Summary>
public int MyMethod()
{
   return 42;
}

<summary>すべてのメンバーにこれらのタイプのコメントが必要です-これらはインテリセンスポップアップメニューにも表示されます。

理由は、あなたが(プロジェクト設定で)出力ドキュメントのxmlファイルにプロジェクトを設定しているので、あなたがこの警告を受けるがあります。これは、クラスライブラリ(.dllアセンブリ)に役立ちます。つまり、.dllのユーザーは、Visual StudioでAPIのインテリセンスドキュメントを入手できます。

GhostDoc Visual Studioアドインのコピーを自分で入手することをお勧めします。ドキュメント化がはるかに簡単になります。


8
GhostDocについて言及した場合は+1。それについて知らなかったので、確かにドキュメント化が簡単になります。
Vivelin

7
警告の理由を示すための+1。プロジェクトプロパティ(VS 2008)の[ビルド]の下にある設定を見つけ、不思議なことに理由もなくチェックしていた10個中1個のプロジェクトでオフに切り替えました。
チャックウィルバー

30
-1お勧めGhostDoc-私が今まで見た中で最も愚かなアドオン。ドキュメントを生成します。少し間を置いて考えてみましょう。メソッド名と引数の型のみに基づいてドキュメントを生成するツールを使用するために、コードをより理解しやすくしたいとします。それはあなたにとって意味がありますか?ユーザーは引数の名前とタイプを確認し、コメントを追加できますDateTime date- 日付は本当に役に立ちません。
gdoronは、2015

4
@gdoron、それはあなたには起こらなかったかもしれませんが、GhostDocが生成するドキュメントを編集できます。これにより、ドキュメント全体を最初から作成するよりも、多くの時間を節約できます。
Joel McBeth

3
GhostDocは、コメントがどうあるべきかを推測するだけではありません-ほとんどの場合、それはかなり近く、全体を入力する代わりにいくつかの単語を編集する必要があります-そして、あなたが正しく文書化している場合(そしておそらくそうではありません)、ほとんどのもののためのテンプレートがあり、それらをどのように表現する必要があるか(プロパティ、コンストラクタなど)、そしてGhostDocがそれらを入れます-さらにクール:子クラスにいる場合、それはできます代わりに手でそれをコピーする、との仕事にテンプレートとして、基本クラスからのものとドキュメンテーションに記入-それはなど、例外宣伝文に置く
BrainSlugs83

41

XMLコメントの警告を抑制する

(私の仕事ではありませんが、私はそれが役に立ったので、記事とリンクを含めました)

http://bernhardelbl.wordpress.com/2009/02/23/suppress-warnings-for-xml-comments/

ここでは、Visual Studioのビルド後にXMLコメントの警告を抑制する方法を示します。

バックグラウンド

Visual Studioプロジェクト設定で「XMLドキュメントファイル」マークをチェックした場合、すべてのXMLコメントを含むXMLファイルが作成されます。さらに、XMLコメントがないか間違っているため、デザイナーが生成したファイルでも多くの警告が表示されます。警告がコードの改善と安定化に役立つこともありますが、何百ものXMLコメント警告を受け取るのは面倒です。警告

パブリックに表示されるタイプまたはメンバーの XMLコメントがありません…の XMLコメントに…のparamタグがありますが、その名前のパラメーターはありませんパラメーター…のXMLコメントに一致するparamタグがありません(ただし...)他のパラメータは行います)ソリューション

Visual Studioですべての警告を抑制することができます。

  • Visual Studioプロジェクトを右クリック/プロパティ/ビルドタブ

  • 「警告を非表示」に次の警告番号を挿入します:1591,1572,1571,1573,1587,1570


6
Xmlコメント警告を抑制するために1591を追加するだけで済みました。
Brian Behm、2015年

コードリストをありがとう!私はそれらを1つずつ収集し始め、3番目のビルドで警告を出して、どこかにあるのでそのままにしておく必要があると考えました:)
sarh 2015年

何かが正しくありません
。1591

また、MSですべて1572,1571,1573,1587,1570をチェックしましたが、設定しませんでした。これらはより具体的なエラーです。///<summary>を設定していて、パラメーターに誤りがあるとしましょう。警告が表示されるはず
Pawel Cioch

26

コードの変更やプラグマブロックを必要とせずに、これらのメッセージを抑制する別の方法があります。Visual Studioの使用-プロジェクトプロパティに移動>ビルド>エラーと警告>警告を抑制-警告コードのリストに1591を追加します。

ここに画像の説明を入力してください


これは、これまでにこの問題について私が見た答えを実装するのに、断然、最善、最も簡単、そして最も速いです。これは上記の別の回答の繰り返しですが、これは視覚的にわかりやすく、すぐにすぐに回答が得られます。どうもありがとうございました。
David Covey

ここでベストアンサー。私のコードベースが#pragma warning disableどこにでも散らばるのを防ぎます。
RoadRunner-MSFT

23

XMLコメントを挿入します。;-)

/// <summary>
/// Describe your member here.
/// </summary>
public string Something
{
    get;
    set;
}

これは一見冗談のように見えるかもしれませんが、実際には役に立つかもしれません。私にとっては、プライベートメソッドに対してもメソッドが何をするかを考えることが役立つことがわかりました(もちろん、ささいなことを除いて)。


5
私は常にメソッドにコメントを付けていますが、プロパティ(技術的にはメソッドですが、通常は簡単な実装と自明の名前があります)については、面倒で余分なXMLコメントを追加する繰り返しを避けたいと思います。
Peter Gluck 2014

15

これは、XMLドキュメントファイルがプロジェクトプロパティで指定されており、メソッド/クラスがパブリックであり、ドキュメントがないためです。
次のいずれかを実行できます。

  1. XMLドキュメントを無効にする:

    プロジェクトを右クリック->プロパティ-> 'ビルド'タブ-> XMLドキュメントファイルのチェックを外します。

  2. ドキュメンテーションを自分で書いてください!

XMLドキュメントの要約は次のようになります。

/// <summary>
/// Description of the class/method/variable
/// </summary>
..declaration goes here..

ありがとうございます。この方法が警告を無効にする最良の正しい方法だと思います
Ramil Aliyev

8

私はここにリストされている答えに何かを追加したかった:

Isakが指摘したように、XMLドキュメントはVisual Studio内のすべてのコンシューマーにインテリセンスを提供するため、クラスライブラリに役立ちます。したがって、簡単で正しい解決策は、トップレベルプロジェクト(UIなど)のドキュメントをオフにすることです。これは、独自のプロジェクトの外部で実装されることはありません。

さらに、警告は一般に公開されているメンバーにのみ表示されることを指摘したかったのです。したがって、必要なものだけを公開するようにクラスライブラリを設定した場合、ドキュメントprivateinternalメンバーなしで取得できます。


8

私はこれが本当に古いスレッドであることを知っていますが、それはGoogleでの最初の応答なので、このビットの情報を追加したいと思いました

。 。それほど多くの情報が本当に必要でない限り、3に設定すれば、これらの警告を取り除くことができます。もちろん、警告レベルを変更すると、コメントだけでなく、何が不足しているかわからない場合は、ドキュメントを参照してください。https
//msdn.microsoft.com/en-us/library/thxezb7y.aspx


7

ソリューションでは、XMLドキュメントファイルを生成するオプションをオンにすると、パブリックメンバーのチェックが開始され、XMLDocが存在するかどうかが確認されます。そうでない場合は、要素ごとに警告が表示されます。DLLを本当にリリースしたくない場合は、ドキュメントも不要です。ソリューションに移動して、セクションを作成し、セクションをオフにしてください。それ以外の場合は、必要に応じて入力してください。重要でない場合は、プロパティとフィールド、プリコンパイラー命令でそれらを超えるだけで #pragma warning disable 1591 、警告を復元することもできます: #pragma warning restore 1591

プラグマの使用法:コンパイラの警告が表示される場所の前のコードの任意の場所...メソッド、または...ラップする必要がない場合は、呼び出して何気なく復元できます(ファイルの先頭から開始し、メソッド内で終了します)。次のコードを記述します。

#pragma warning disable 1591 復元する必要がある場合は、次を使用します。 #pragma warning restore 1591

ここに例を示します:

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using RealEstate.Entity.Models.Base;

namespace RealEstate.Models.Base
{
    public class CityVM
    {

#pragma warning disable 1591

        [Required]
        public string Id { get; set; }

        [Required]
        public string Name { get; set; }

        public List<LanguageBasedName> LanguageBasedNames { get; set; }

        [Required]
        public string CountryId { get; set; }

#pragma warning restore 1591

        /// <summary>
        /// Some countries do not have neither a State, nor a Province
        /// </summary>
        public string StateOrProvinceId { get; set; }
    }
}

プラグマディレクティブは行の先頭から始まることに注意しください


2
#pragma warning disable 1591
#pragma warning disable 1591
#pragma warning disable 1572
#pragma warning disable 1571
#pragma warning disable 1573
#pragma warning disable 1587
#pragma warning disable 1570

2

警告レベルを2に設定すると、このメッセージが表示されなくなります。有用な警告も抑制されるため、それが最善の解決策かどうかはわかりません。


これを選択するのではなく、XMLドキュメントを無効にすることでリスクが軽減されると思います。
Ajay Aradhya 2017年

2

Jon Skeetの答えは、VisualStudioを使用して構築する場合に最適です。ただし、コマンドラインでslnをビルドしている場合(私の場合はAnt経由でした)、msbuildがsln抑制要求を無視する場合があります。

これをmsbuildコマンドラインに追加すると、問題が解決しました。

/p:NoWarn=1591

1

ファイル > 編集 > プロジェクトの表示(クリック)

ドロップダウンの下部([ 開く ] / [ 現在の作業] > [ プロパティ ]をクリック)、[出力]の[ ビルド]でプロジェクトのプロパティページを開きますXMLドキュメントのチェックボックスを「オフ」にします。

再構築し、警告はありません。


すべてのビルド構成も必ず確認してください。デバッグ用にチェックを外しましたが、リリース用にチェックを外していなかったため、非常に混乱していました。
MattM 2016年

1
このソリューションは、WebAPIドキュメントの場合のソリューションではありません。このオプションをオンにする必要がありますが、警告は抑制されます。
Pawel Cioch 16

1

警告が表示されているメンバーの///コメントを追加する必要があります。

以下のコードを参照してください

public EventLogger()
{
    LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}

公開されているタイプまたはメンバー '.EventLogger()'の警告Missing XMLコメントを表示します

メンバーへのコメントを追加し、警告は消えました。

///<Summary>
/// To write a log <Anycomment as per your code>
///</Summary>
public EventLogger()
{
    LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}

-5

メソッドに属性をアタッチした後、そのメッセージを受け取りました

[webMethod]
public void DoSomething()
{
}

しかし、正しい方法はこれでした:

[webMethod()] // Note the Parentheses 
public void DoSomething()
{
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.