none
「XMLコメントが有効な言語要素の中にありません」の警告について RRS feed

  • 質問


  • おかしな現象を見つけました。

    以下のような実装をすると、タイトルの警告がでます。
    これは仕様ですか? ちょうど20個目から警告が出ます。
    同じClass1に関するXMLコメントなので、ビルドすると結合されると思うのですが、その結合数に上限があるのでしょうか?
    なお、プロジェクトのプロパティでXMLドキュメントファイルを出力するように設定をします。

    namespace WindowsApplication1
    {
    
    	/// <summary>
    	/// コメント1
    	/// </summary>
    	public partial class Calss1
    	{
    	}
    
    	/// <summary>
    	/// コメント2
    	/// </summary>
    	public partial class Calss1
    	{
    	}

    // コメント3からコメント18までは省略

    ///
    <summary> /// コメント19 /// </summary> public partial class Calss1 { } /// <summary>    ←ここで警告   /// コメント20 /// </summary> public partial class Calss1 { }


    // 21個目以降も警告になります。 }
    2009年11月20日 4:52

回答

  • 2005固有の現象なのでしょうか?
    このフォーラムにおいて、開発陣から見解を聞くことはできません。
    このため、Microsoft から情報を開示されているページを見つけない限り、固有の現象であるとか、仕様なのか、不具合なのか、それを断言することは困難です。

    フォーラムを通してできることは上記のような状況ですが、どういったところを求めたご質問でしょうか?
    何か情報を知っている人が教えて欲しいというニュアンスなのでしょうか?

    公式の回答が欲しいというのであれば、サポートから聞き出すか、KB や Connect などで探すかと言うことになりそうです。
    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク かずし 2009年11月24日 0:28
    2009年11月20日 14:27
    モデレータ
  • > また、同じことをVS2008で試したら警告は出ませんでした。
    > 2005固有の現象なのでしょうか?

    ・Visual Studio 2005 Pro / XP Pro SP3

    で試してみたところ、確かに以下の警告が出ました。

    「警告 CS1587: XML コメントが有効な言語要素の中にありません。」

    こちらの環境では 21個目から発生しました。

    さすがに partial class を大量に用意してコメントを結合しようとは誰も思わないのか
    ネットで探しても、この件に関する情報は出てないようですね。(^ω^;

    • 回答としてマーク かずし 2009年11月24日 0:28
    2009年11月20日 14:49
    モデレータ
  • 仕様としては<summary>タグの出現回数は定義されていませんが、一般的には1つです。今回のようにpartialで連ねられると出現順序が保証されませんし。
    20個以上の<summary>タグを連ねたいということでしたら
    /// <summary> 1</summary>
    /// <summary> 2</summary>
    /// <summary> 3</summary>
    /// <summary> 4</summary>
    /// <summary> 5</summary>
    /// <summary> 6</summary>
    /// <summary> 7</summary>
    /// <summary> 8</summary>
    /// <summary> 9</summary>
    /// <summary> 10</summary>
    /// <summary> 11</summary>
    /// <summary> 12</summary>
    /// <summary> 13</summary>
    /// <summary> 14</summary>
    /// <summary> 15</summary>
    /// <summary> 16</summary>
    /// <summary> 17</summary>
    /// <summary> 18</summary>
    /// <summary> 19</summary>
    /// <summary> 20</summary>
    /// <summary> 21</summary>
    /// <summary> 22</summary>
    public partial class Class1 {
    }
    のようにされるとVisual Studio 2005でも警告は出ません。

    ちなみにVS2005とVS2008との違いというよりは
    %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\csc.exe
    %SystemRoot%\Microsoft.NET\Framework\v3.5\csc.exe
    の違いです。
    バージョンが上がって、仕様外の機能に対してこっそり修正されたのかと思います。
    • 回答としてマーク かずし 2009年11月24日 0:27
    2009年11月21日 4:57

すべての返信

  • > 同じClass1に関するXMLコメントなので、ビルドすると結合されると思うのですが、その結合数に上限があるのでしょうか?
    > なお、プロジェクトのプロパティでXMLドキュメントファイルを出力するように設定をします。


    試してみましたが、こちらの環境では再現しませんでした。

    ・Visual Studio 2008 Standard SP1 / XP Pro SP3
    ・Visual Studio 2010 Uilimate beta2 日本語版/ XP Pro SP3

    まずは警告が起きた環境を提示した方がいいと思います。

    2009年11月20日 5:18
    モデレータ
  • > まずは警告が起きた環境を提示した方がいいと思います。

    おっしゃるとおりですね。

    こちらの環境は、Visual Studio 2005 Pofessional SP1です。/ XP Pro SP3

    また、同じことをVS2008で試したら警告は出ませんでした。
    2005固有の現象なのでしょうか?
    2009年11月20日 5:48
  • 2005固有の現象なのでしょうか?
    このフォーラムにおいて、開発陣から見解を聞くことはできません。
    このため、Microsoft から情報を開示されているページを見つけない限り、固有の現象であるとか、仕様なのか、不具合なのか、それを断言することは困難です。

    フォーラムを通してできることは上記のような状況ですが、どういったところを求めたご質問でしょうか?
    何か情報を知っている人が教えて欲しいというニュアンスなのでしょうか?

    公式の回答が欲しいというのであれば、サポートから聞き出すか、KB や Connect などで探すかと言うことになりそうです。
    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク かずし 2009年11月24日 0:28
    2009年11月20日 14:27
    モデレータ
  • > また、同じことをVS2008で試したら警告は出ませんでした。
    > 2005固有の現象なのでしょうか?

    ・Visual Studio 2005 Pro / XP Pro SP3

    で試してみたところ、確かに以下の警告が出ました。

    「警告 CS1587: XML コメントが有効な言語要素の中にありません。」

    こちらの環境では 21個目から発生しました。

    さすがに partial class を大量に用意してコメントを結合しようとは誰も思わないのか
    ネットで探しても、この件に関する情報は出てないようですね。(^ω^;

    • 回答としてマーク かずし 2009年11月24日 0:28
    2009年11月20日 14:49
    モデレータ
  • 仕様としては<summary>タグの出現回数は定義されていませんが、一般的には1つです。今回のようにpartialで連ねられると出現順序が保証されませんし。
    20個以上の<summary>タグを連ねたいということでしたら
    /// <summary> 1</summary>
    /// <summary> 2</summary>
    /// <summary> 3</summary>
    /// <summary> 4</summary>
    /// <summary> 5</summary>
    /// <summary> 6</summary>
    /// <summary> 7</summary>
    /// <summary> 8</summary>
    /// <summary> 9</summary>
    /// <summary> 10</summary>
    /// <summary> 11</summary>
    /// <summary> 12</summary>
    /// <summary> 13</summary>
    /// <summary> 14</summary>
    /// <summary> 15</summary>
    /// <summary> 16</summary>
    /// <summary> 17</summary>
    /// <summary> 18</summary>
    /// <summary> 19</summary>
    /// <summary> 20</summary>
    /// <summary> 21</summary>
    /// <summary> 22</summary>
    public partial class Class1 {
    }
    のようにされるとVisual Studio 2005でも警告は出ません。

    ちなみにVS2005とVS2008との違いというよりは
    %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\csc.exe
    %SystemRoot%\Microsoft.NET\Framework\v3.5\csc.exe
    の違いです。
    バージョンが上がって、仕様外の機能に対してこっそり修正されたのかと思います。
    • 回答としてマーク かずし 2009年11月24日 0:27
    2009年11月21日 4:57
  • フォーラムを通してできることは上記のような状況ですが、どういったところを求めたご質問でしょうか?
    何か情報を知っている人が教えて欲しいというニュアンスなのでしょうか?

    おっしゃる通りで、何か情報を知っている人がおられたら、教えて欲しいというニュアンスです。

    現状、分割数を減らすことで対応できているので、公式回答まで欲しいわけではありません。
    もちろん、頂けるのであれば、それに越したことはありませんが。

    アドバイスありがとうございます。
    2009年11月24日 0:20
  • こちらの環境では 21個目から発生しました。

    なるほど、となると数は関係なさ気ですね。

    いずれにせよ、20近い分割は避けた方が良いですね。

    検証していただきありがとうございます。
    2009年11月24日 0:25
  • ちなみにVS2005とVS2008との違いというよりは
    %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\csc.exe
    %SystemRoot%\Microsoft.NET\Framework\v3.5\csc.exe
    の違いです。
    バージョンが上がって、仕様外の機能に対してこっそり修正されたのかと思います。

    なるほど。おそらく、おっしゃるとおりなんだろうと思います。

    Summaryの順序の件は、勉強になりました。ありがとうございます。
    2009年11月24日 0:27