使用Sandcastles在CHM帮助文件中嵌入图像

时间:2014-09-24 09:57:54

标签: html xml documentation chm sandcastle

我正在使用Sandcastles为我的项目生成CHM帮助文件。我想要一个我可以分发的独立CHM文件,最好是自己分发。

我遇到的问题是嵌入图像出现图像需要与CHM文件分开存在于用户系统中。当我查看我的CHM文件的来源时,它看起来像:

<img src="C:\Users\me\Pictures\wave.jpg" />

因此,如果我将我的CHM文件通过电子邮件发送给某人并且他们没有此图像,则会失败。另一种方法是:

<img src="images/wave.jpg" />

并通过电子邮件向此人发送包含我的CHM文件和图片文件夹的ZIP。在我看来,这不是一个非常好的解决方案。

有没有办法在CHM文件中“嵌入”图像?或者有一个干净的解决方案吗?

为了记录,我通过这个XML代码将这个图像包含在我的C#项目中。

/// <summary>
/// Lorem ipsum dolor sit amet, consectetur adipiscing elit.
/// Pellentesque quis tortor sit amet magna posuere sagittis. 
/// Integer aliquet nibh elit, ut porta ex laoreet et
/// </summary>
/// /// <remarks>A picture: <br />
/// <img src "C:\Users\me\Pictures\wave.jpg" />
/// </remarks>

1 个答案:

答案 0 :(得分:8)

它只是一个Visual Basic示例,但我认为C#就在附近。我假设你使用sandcastle帮助文件生成器(SHFB)。

如果图像未在MAML主题中使用,只需将SHFB项目中的BuildAction设置为Content并将它们放在images文件夹中。它们将自动复制到工作文件夹中并编译到CHM帮助文件中。

将[images]文件夹导入SHFB Project Explorer的步骤,未被MAML主题引用:

  1. 从树上下文菜单中选择添加和现有文件夹...,选择[images] -Folder
  2. 对于每个图像文件,将BuildAction从Image设置为Content
  3. 在SHFB中,按“构建帮助文件按钮”
  4. 构建之后,您有一个包含图像的CHM帮助文件。

    我附上了一些Visual Basic项目的快照,SHFB和生成的CHM。

    enter image description here

    enter image description here

    enter image description here