2017-01-05 7 views
0

VBでVS2012アプリケーションを構築しました。最近、私は私のアプリケーション開発フォルダ(と、その点では、そのフォルダにつながるいくつかのフォルダ)のHELP(.chm)ファイルにアクセスすることができないことがわかりました。これで、.chmファイルのコピーを、アプリケーション開発フォルダーのパスを構成するすべてのフォルダーに配置しました。参考のために、アプリ開発のフォルダは次のとおりです。一部のフォルダで.chmファイルにプログラムでアクセスできない

C:/ユーザー/ゲイリー/マイドキュメント/ Visual Studioの2012 /プロジェクト/ドクタードクター/ドクタードクター/ドクタードクター/ビン/デバッグ

週間前までは、 問題はありません。今、奇妙な行動。

ここではコードの一部は、「作品」ということだ - 私はアプリを実行し、塩基形態でメニュー項目(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 

アプリケーション開発フォルダに「近く」移動すると、メニュー項目をクリックすると一時的な一時停止(砂時計を含む)が1秒間表示されますが、何も表示されません。改訂コードは

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ファイルのコピーは、「マイドキュメント」フォルダと「Visual Studio 2012」フォルダの両方にあります。また、以前の投稿を明示的にプロジェクト内に.chmファイルを含めるために、Build Action = ContentとCopy to Output Directory = Copy if Newer

この動作に関するアイデアはありますか?

関連するかもしれない情報がいくつか追加されています....このプロジェクトには、HELPにアクセスできる多数の場所が含まれています。これらすべての場所(上記の基本形式のものを除く)は、appフォルダのHELPにアクセスしようとします。

基本形式のHELPがHELPへのアクセスに失敗すると、すべての場所がHELPにアクセスできません。ベースフォームのHELPパスがアクセスが成功する場所に設定されている場合は、他のすべての場所が成功します(暗黙的にappフォルダ内の.chmファイルが検索されているにもかかわらず)。しかし、他の場所で作業するには、まずベースフォームからHELPにアクセスする必要があります。

答えて

0

Visual Studio 2015で問題を再現しようとしましたが、私のシステムでは発生していないようです。いくつかの考え - しかし、最初のヒントに注意してください:お使いのシステム上のすべてのHTMLヘルプファイル(* .CHM)に


hh.datファイルを格納し、ユーザー固有の情報(位置、お気に入りのトピック、検索履歴、など)、何らかの形で壊れているとエラーが発生する可能性があります。ファイルhh.datを削除または名前を変更して、システムのすべての(!)CHMウィンドウをデフォルト設定にリセットします。あなたは、このディレクトリにhh.dat見つける必要があります。

\ DocumentsとSettings \%username%\アプリケーションデータ\マイクロソフト\ HTMLヘルプ

か(Windowsのバージョンによって異なります)

C:\ Users \ユーザー名%%\のAppData \ローミング\マイクロソフト\ HTMLヘルプ

Windowsのあなたが次のいずれかの.Cを開いたときにhh.datの新しいバージョンを作成します。 hmファイル。


CHMが変更されず、別の方法でコンパイルされているかどうかを確認します。両方のテストフォルダに同じCHMファイルがあることを確認してください。検索し、ファイル(例:doctor21.chw)がオンザフライで作成されているかどうかを確認します(テストフォルダ内のこのファイルを削除します)。


CHMのインデックスにインデックスタブとキーワード "Welcome"があることを確認してください。

関連する問題