Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从参考资料c中打开CHM文件#_C#_Embedded Resource_Chm - Fatal编程技术网

C# 从参考资料c中打开CHM文件#

C# 从参考资料c中打开CHM文件#,c#,embedded-resource,chm,C#,Embedded Resource,Chm,我有一个CHM文件和一个帮助菜单,我想将该文件添加到资源中,但当我将其添加到资源中时,它不起作用。 我试图添加到参考资料中的子文件夹,但仍然没有用 void HelpToolStripMenuItemClick(object sender, EventArgs e) { string filePath = Directory.GetCurrentDirectory() + "\\Help\\abc.chm"; try { //Ch

我有一个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);

}
即使安装了安装程序,我也要工作 在任何计算机上


如果有人告诉我如何嵌入我的设置,我会更好。首先,将帮助文件添加到项目中,并打开该文件的属性窗口。在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#包括上面的代码和具有不同帮助查看器窗口的帮助文件(仅用于show case的不同CHM文件)。

FileStream构造函数调用忘记使用
filePath
变量。将chm存储在资源中是个坏主意,将其部署为普通文件。