2

xmlコメントを使用するC#プロジェクトがあります。Sandcastleヘルプファイルビルダーを使用して、Sandcastleでそれらからchmファイルを作成します。このプロジェクトのメンバー関数の1つは、埋め込まれたリソースを利用します。ヘルプファイルで参照したい。sandcastleはこれをサポートしていないようですが、解析する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].

ReSharperAgentSmithが提案し、 <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().

だから私の質問は2つの部分です:

  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フォルダーにあるため、1レベル上に移動する必要があります。ルートフォルダから離れたサブフォルダにファイルを配置する場合は、その名前をhrefターゲット「../FolderName/Resources.TextFile.txt」に追加します。

Sandcastle Stylesパッチを適用した場合は、<see>タグでcref属性の代わりにhref属性を使用できます。ファイルの場所情報は同じになります。

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

エリック

于 2009-09-02T02:12:33.443 に答える