【问题标题】:How to display chm file in c# winforms application如何在c#winforms应用程序中显示chm文件
【发布时间】:2016-04-15 06:03:30
【问题描述】:

我已将 .chm 文件添加到我的应用程序根目录。当我使用下面的代码获取文件时,它引用了 bin/release/somehting.chm 的路径

System.Windows.Forms.Help.ShowHelp(this, Application.StartupPath+"\\"+"somehting.chm");

我想获取相对于应用程序安装位置的路径。请帮忙。

添加到根目录的 chm 文件在部署应用程序后未加载。在 Visual Studio 中调试时它甚至没有加载并且没有给出任何错误。

【问题讨论】:

  • 当您在 Visual Studio 中调试或安装/部署应用程序时,这是它使用的路径吗?
  • 可能重复亲属Paths in Winforms
  • 当我从 Visual Studio 运行时,它获取 applicationfolder/bin/release/something.chm 我的 something.chm 文件位于 applicationfolder/something.chm 下。即使我根据安装位置进行部署,我也希望获取 something.chm 文件路径
  • 普通朋友,如果它是重复的,我为什么要发布问题。我将检查以前类似问题的答案,并检查是否有可能的解决方案,如果不是,那么只有我会发布。

标签: c# winforms chm


【解决方案1】:

我可以从您调用Help.ShowHelp 的问题中看到第一个代码sn-p 还不错。有时我使用下面的相关代码。许多解决方案是可能的...... 请注意,错别字,例如somehting.chm 在代码 sn-ps 中令人不安。

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

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

因此,请打开 Visual Studio - 解决方案资源管理器并检查您的 CHM 文件的属性。转到下面快照中显示的下拉框并设置“始终复制”(这里只有德语)。以Debug 模式启动您的项目并检查您的 bin/debug 输出文件夹。对Release 模式和输出文件夹执行相同的操作。 CHM 应该驻留在那里,我希望您的 CHM 呼叫有效。

【讨论】:

  • 在按照您的说明操作后,它可以使用调试和发布模式。但是当我添加安装项目并部署应用程序时。并从安装文件运行应用程序,它不工作。你能帮忙吗
  • 我需要将chm文件添加到安装项目的应用程序文件夹中
  • 感谢朋友,这对我很有帮助,解决了我的问题
【解决方案2】:

你需要:

String exeDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);

所以:

String HelpFilepath = "file://" + Path.Combine(exeDirectory , "somehting.chm");
Help.ShowHelp(this, path);

【讨论】:

  • 仍然进入 bin/release 文件夹
  • 部署应用时,结果会有所不同。这将返回您正在运行的 EXE 的实际目录。
  • 哦,那它会没事的。不适部署和测试。感谢为什么与 web 相比,windows 开发就像地狱一样
  • 您也可以查看编辑后的答案,更能保证您得到正确的结果。
  • 它不工作我已经部署了我的应用程序并安装并检查了它没有显示。请帮忙
【解决方案3】:

类似topic的回答是:

// get full path to your startup EXE
string exeFile = (new System.Uri(Assembly.GetEntryAssembly().CodeBase)).AbsolutePath;

// get directory of your EXE file
string exeDir = Path.GetDirectoryName(exeFile);

// and open Help
System.Windows.Forms.Help.ShowHelp(this, exeDir+"\\"+"somehting.chm");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多