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にアクセスする必要があります。