从资源中打开CHM文件c#

时间:2018-03-15 05:41:32

标签: c# embedded-resource chm

我有一个CHM文件和一个帮助菜单,我想将该文件添加到资源,但是当我将它添加到资源时,它不起作用。 我试图在参考资料中添加到子文件夹,但仍然没有使用

void HelpToolStripMenuItemClick(object sender, EventArgs e)
        {
        string filePath = Directory.GetCurrentDirectory() + "\\Help\\abc.chm";

    try
    {
        //Check if already exists before making 
        if (!File.Exists(filePath))
        {
            var data = Properties.Resources.abc.chm;
            using (var stream = new FileStream("abc.chm", FileMode.Create))
            {
                stream.Write(data, 0, data.Count());
                stream.Flush();
            }
            MessageBox.Show("file made");
        }
    }
    catch
    {
        //May already be opened

    }

    Help.ShowHelp(this, filePath);

}

即使在安装设置时,我也想工作 在任何计算机上

如果有人告诉我如何嵌入我的设置

,我会更好

1 个答案:

答案 0 :(得分:1)

首先,将帮助文件添加到项目中,然后打开该文件的“属性”窗口。在CopyToOutputDirectory中,选择“始终复制”或“如果更新则复制”。

这将确保在您调试/测试应用程序时,它会将文件复制到bin文件夹。

Debug模式启动项目并检查bin / debug输出文件夹。对Release模式和输出文件夹执行相同操作。 CHM应驻留在那里并包含在您的部署中。

用于调用CHM的示例代码段:

private const string sHTMLHelpFileName = "CHM-example.chm";
...

private void button1_Click(object sender, EventArgs e) {
  System.Windows.Forms.Help.ShowHelp(this, Application.StartupPath + @"\" + sHTMLHelpFileName);
  }

为了下载,我提供了一个C#VS2008 Project,包括上面的代码和带有不同帮助查看器窗口的帮助文件(仅用于展示案例的不同CHM文件)。