2

我有一个使用xml 注释的 C# 项目。我通过Sandcastle Help File Builder使用Sandcastle从它们制作 chm 文件。该项目中的成员函数之一使用了嵌入式资源。我想在帮助文件中引用它。似乎沙堡不支持这一点,但它解析的 xml 文档文件支持。我这样说是因为下面的例子

/// <summary>
/// Displays the resource text.
/// </summary>
/// <remarks>The file is loaded from the <see cref="Resources.TextFile.txt"/>.</remarks>
private static void ShowResource()
{
    // Getting text from embedded resource
}

如果我编译该代码并从生成的 xml 文档中编译一个 chm,我会在构建日志中得到以下内容:

  Warn: CachedResolveReferenceLinksComponent: Unknown reference link target '!:Resources.HelpTextFile.txt'.

备注部分是:

The help file is loaded from the [!:Resources.TextFile.txt].

如果我按照ReSharper的Agent Smith的建议进行操作并将<see/>元素更改为构建日志会说:<see cref="Resources.TextFile"/>

Warn: CachedResolveReferenceLinksComponent: Unknown reference link target 'P:ProjectName.Properties.Resources.TextFile'.

并且 chm 的备注部分更改为:

The help file is loaded from the HelpTextFile().

所以我的问题是第一部分:

  1. 我使用<see/>元素来引用资源是否正确?
  2. 有没有办法让沙堡引用它生成的 chm 文件中的嵌入式资源?
4

1 回答 1

3

您可以使用 HTML 锚标记来实现相同的结果。这就像在 XML 注释中使用 <img> 标记来引用图像文件。

/// The resources are loaded from
/// <a href="../Resources.TextFile.txt">Resources.TextFile.txt</a>.

将资源文件作为内容项包含在项目中。上面的示例假定它位于根文件夹中。HTML 文件始终位于 ./html 文件夹中,因此需要上一层。如果您将文件放在根文件夹的子文件夹中,请将其名称添加到 href 目标:“../FolderName/Resources.TextFile.txt”。

如果您应用了 Sandcastle Styles 补丁,则可以在 <see> 标记上使用 href 属性而不是 cref 属性。文件位置信息将是相同的。

/// The resources are loaded from
/// <see href="../Resources.TextFile.txt" />.

埃里克

于 2009-09-02T02:12:33.443 回答