0

基本上,我试图将所有文档保存在单独的文件中并使用<include>标签。这将使我的源代码免于文档混乱。我仍然希望有一些关于类和成员的开发人员注释,所以我使用了<devdoc>标签。现在的问题是 Visual Studio 将我的开发人员注释添加到 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 回答