在某些文件夹

时间:2017-01-05 15:17:51

标签: vb.net visual-studio-2012 chm

我在VB中构建了一个VS2012应用程序。最近,我发现我无法访问应用开发文件夹中的HELP(.chm)文件(就此而言,有几个文件夹导致该文件夹)。我现在在构成app开发文件夹路径的所有文件夹中放置了.chm文件的副本。作为参考,app development文件夹是:

C:/ Users / Gary / My Documents / Visual Studio 2012 / Projects / Doctor Doctor / Doctor Doctor / Doctor Doctor / Bin / Debug

直到一周前,没问题。现在,奇怪的行为。

这是"工作的一段代码" - 这意味着当我运行应用程序并单击基本表单中的菜单项(mnuHelp)时,HELP文件会按预期显示:

Private Sub mnuHelp_Click(sender As Object, e As EventArgs) Handles mnuHelp.Click
    Dim str As String = "C:/Users/Gary/My Documents/Doctor21.chm"
    Help.ShowHelp(Me, str, System.Windows.Forms.HelpNavigator.KeywordIndex, "Welcome")
End Sub

当我现在移动"更近"在app开发文件夹中,单击菜单项会导致短暂暂停(包括沙漏)显示一秒左右,但没有其他内容。修改后的代码是

Private Sub mnuHelp_Click(sender As Object, e As EventArgs) Handles mnuHelp.Click
    Dim str As String = "C:/Users/Gary/My Documents/Visual Studio 2012/Doctor21.chm"
    Help.ShowHelp(Me, str, System.Windows.Forms.HelpNavigator.KeywordIndex, "Welcome")
End Sub

请注意,唯一的区别是包含" Visual Studio 2012"在路上。 .chm文件的副本位于"我的文档"和#34; Visual Studio 2012"文件夹。此外,我已经按照之前的帖子明确地在项目中包含.chm文件,设置构建操作=内容并复制到输出目录=复制如果更新

有关此行为的任何想法?

一些可能相关的附加信息....该项目包含许多可以访问HELP的地方。所有这些地方(如上图所示的基本形式除外)都尝试访问app文件夹中的HELP。

如果基本形式的HELP无法访问HELP,则所有地点都无法访问HELP。如果基本形式的HELP路径设置为访问成功的位置,则所有其他位置成功(即使它们隐式查找app文件夹中的.chm文件)。但是,对于其他工作地点,我必须首先从基本表单中访问HELP。

1 个答案:

答案 0 :(得分:0)

我尝试使用Visual Studio 2015重现您的问题 - 但似乎不会在我的系统上发生。一些想法 - 但要小心第一个提示:

hh.dat文件存储有关系统上所有HTMLHelp文件(* .CHM)的用户特定信息(位置,喜欢的主题,搜索历史记录等),如果它以某种方式损坏,可能会导致错误。删除或重命名文件hh.dat以将系统上的所有(!)CHM窗口重置为其默认设置。你应该在这个目录中找到hh.dat:

  

\ Documents and Settings \%username%\ Application Data \ Microsoft \ HTML Help

或(取决于您的Windows版本)

  

C:\ Users \%username%\ AppData \ Roaming \ Microsoft \ HTML Help

当您下次打开任何.chm文件时,Windows将创建新版本的hh.dat。

您要检查您的CHM是否未以不同方式更改和编译。确保两个测试文件夹中都有相同的CHM文件。搜索并检查是否即时创建了一个文件,例如doctor21.chw(在测试文件夹中删除此文件)。

确保您有一个索引标签和一个关键字"欢迎"在CHM的索引中。