C# 从参考资料c中打开CHM文件#
我有一个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
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存储在资源中是个坏主意,将其部署为普通文件。