如何在Sandcastle中忽略.xml文档文件以供参考.dll

时间:2017-11-13 10:59:45

标签: visual-studio chm sandcastle

我有一个针对.NET Framework 4.5.2的项目

我查看了XML documentation file标签中的Build复选框,允许我记录自己的代码。

然后我使用Sandcastle帮助文件生成器GUI构建了.chm文件。一切都很好。

现在我使用Tuples添加了一些功能,因为我的目标是框架版本4.5.2,而不是稍后包含它,我添加了System.ValueTuple.dll引用。

现在问题开始了:在我的发布目录中,除了包含我的摘要的doc.xml文件以及代码的内容之外,还有System.ValueTuple.xml包含.dll文件的文档。但是,在尝试在某些更改后重建Sandcastle文件后,出现以下错误:

> SHFB: Error BE0065: BUILD FAILED: Tag początkowy „p” w wierszu 1241 na 
pozycji 2 nie pasuje do tagu końcowego „th”. wiersz 1241, pozycja 92.
   w System.Xml.XmlTextReaderImpl.Throw(Exception e)
   w System.Xml.XmlTextReaderImpl.ThrowTagMismatch(NodeData startTag)
   w System.Xml.XmlTextReaderImpl.ParseEndElement()
   w System.Xml.XmlTextReaderImpl.ParseElementContent()
   w System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)
   w System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
   w System.Xml.XmlDocument.Load(XmlReader reader)
   w System.Xml.XmlDocument.LoadXml(String xml)
   w SandcastleBuilder.Utils.BuildEngine.XmlCommentsFile.get_Comments()
   w SandcastleBuilder.Utils.BuildEngine.XmlCommentsFile.get_Members()
   w SandcastleBuilder.Utils.BuildEngine.XmlCommentsFileCollection.get_ContainsInheritedDocumentation()
w SandcastleBuilder.Utils.BuildEngine.BuildProcess.Build()

第一行显示Starting tag "p" in line 1241, position 2 does not match end tag "th" line 1241, position 92.

经过一些快速的回顾后,我发现确实是System.ValueTuple.dll的文档文件被破坏了(并且非常糟糕)。由于我在帮助文件中并不需要它,并且不想修复一百个错误,我如何告诉Sandcastle忽略它?

到目前为止,我试过了:

  • Release目录
  • 手动删除文件
  • AllowedReferenceRelatedFileExtensions档案中添加.csproj
  • 检查/取消选中Sandcastle项目属性中Visibility选项卡中的各个字段,包括API过滤器(违规.dll不存在)
虽然我可能会尝试错误的搜索字词,但谷歌也没有回复我。

1 个答案:

答案 0 :(得分:0)

作为测试,我将一个NuGet包PdfSharp.dll添加到一个小型的c#项目中。生成的文档是一个4.5 MB的CHM文件。

因此,在Sandcastle帮助文件生成器GUI的解决方案资源管理器中,我右键单击并删除了PdfSharp.dll和PdfSharp.xml like shown in this screenshot。生成的CHM大小为122 KB。