0

基本的に、私はすべてのドキュメントを別のファイルに保存して<include>タグを使用しようとしていました。これにより、ソースコードをドキュメントが乱雑にならないようにすることができます。クラスとメンバーに関する開発者向けのメモを作成する方法がまだ必要だったので、<devdoc>タグを使用しました。問題は、VisualStudioが開発者向けのメモをxmlドキュメントファイルに追加することです。xmlドキュメントにコンパイルしないようにする方法はありますか?

/// <devdoc>This is an interesting Foo class</devdoc>
/// <include file="docs.xml" path='Doc/Member[@for="MyNamespace.Foo"]/*' />
public class Foo { ... }

その結果:

<member name="T:MyNamespace.Foo">
  <devdoc>This is an interesting Foo class</devdoc>
  <Summary>Some summary for testing.</Summary>
</member>

Sandcastleが<devdoc>ドキュメントを生成するときにクラスを使用しないことはわかっていますが、ライブラリに関するインテリセンス情報を提供する場合は、生成されたxmlファイルを含める必要があります。それが不可能なら、それは世界の終わりではありませんが、そもそもそれを排除する方法があることを望んでいます。

4

1 に答える 1

0

ビルド後のイベントから呼び出される単純なコンソールアプリケーションを作成します。アプリケーションはすべての<devdoc>タグを削除します。それは本当に簡単です。生成されたXMLファイルを読み取り、次のように正規表現を使用します。

using System.Text.RegularExpressions;

Regex regex = new Regex("<devdoc>(.|\n)*</devdoc>", RegexOptions.Compiled | RegexOptions.Multiline);
s = regex.Replace(s, string.Empty);

XmlDocumentとそのGetElementsByTagNameメソッドを使用してから、XmlNode.RemoveChildを使用してタグを削除することもできます。しかし、正規表現の方が効率的だと思います。

于 2012-10-28T11:51:49.483 に答える