2009-09-01 6 views
2

У меня есть проект C#, который использует xml comments. Я делаю chm файлы из них с Sandcastle через Sandcastle Help File Builder. Одна из функций-членов в этом проекте использует embedded resource. Я хочу ссылаться на него в файле справки. Кажется, что sandcastle не поддерживает это, но файлы документации xml, которые он анализирует, делают. Я говорю это потому, что в следующем примереКаков правильный способ ссылки на Embedded Resources в комментариях .net xmldoc?

/// <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 
} 

Если я скомпилировать этот код и скомпилировать CHM из полученного XML-документов я получаю следующее в журнале сборки:

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

И раздел замечания есть :

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

Если я, как Agent Smith для ReSharper предлагает и изменить < см/> элемент <see cref="Resources.TextFile"/> журнала сборки говорит:

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

И раздел Замечания изменений CHM To:

The help file is loaded from the HelpTextFile(). 

Так что мой вопрос является две части одна:

  1. ли мое использование < см./> элемент для ссылки на ресурс правильный?
  2. Есть ли способ получить sandcastle для ссылки на встроенный ресурс в создаваемых им файлах chm?

ответ

3

Вы можете использовать тег привязки HTML для достижения того же результата. Это похоже на ссылки на файлы изображений с использованием тега <img> в комментариях XML.

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

Включите файл ресурсов в качестве элемента контента в проект. В приведенном выше примере предполагается, что он находится в корневой папке. Файлы HTML всегда находятся в папке ./html, поэтому необходимо подняться на один уровень. Если вы поместите файл в подпапку из корневой папки, добавьте ее имя в целевую страницу href: «../FolderName/Resources.TextFile.txt».

Если вы применили патч Sandcastle Styles, вы можете использовать атрибут href вместо атрибута cref на <, см. Тег >. Информация о местоположении файла будет одинаковой.

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

Эрик

+0

Я проверю это. –