2017-09-15 77 views
0

我只是用Desktop Bridge到套餐三個MFC應用程序上傳到Windows應用商店。無法打開幫助文件與Windows 10的通用應用

他們都做工精細,但由於某種原因,其中之一是無法打開幫助文件。 (幫助在其他兩個應用程序工作正常。)

從Visual Studio或通過雙擊可執行文件運行時,問題中的應用完美的作品。但是,從測試AppX軟件包安裝後,訪問幫助給我提供了以下錯誤。

無法啓動幫助。

我能夠使用任務管理器來查找已安裝的應用程序位置並確認它包含我的幫助文件。另外,我添加了代碼以在啓動時顯示幫助文件的路徑,並顯示正確的幫助路徑!但不管我做什麼,我的申請都無法提供幫助。

有誰知道是否有關於被安裝爲Windows 10應用程序,可以在某種程度上限制訪問的幫助文件的訪問權限受到限制什麼?或者任何人都可以建議如何通過上面的完全無用的錯誤信息來獲得它爲什麼失敗的提示?

+0

哪裏文件所在以及如何你試圖打開/啓動它? –

+0

幫助文件與可執行文件位於同一文件夾中。我的應用程序類中有一個委託給CWinApp :: OnHelp的命令處理程序。 –

+0

嘗試將當前工作目錄設置爲該路徑。如果它試圖從當前工作目錄中打開文件,那麼它將無法在轉換的應用程序中工作,因爲該路徑指向其他地方。 –

回答

1

因爲包含您的幫助內容.chm文件位於應用程序安裝文件夾,您得到這個錯誤。在現代Windows應用程序模型中,該文件夾被鎖定,以便只有屬於應用程序包一部分的進程才能訪問它。隨着MFC框架,但是,被調用的幫助觀衆是不是你的包的一部分 - 因此它無法訪問.chm文件。

解決方案適用於運行時的應用程序(例如啓動後),以便在可訪問的位置(例如%TEMP%)中創建.chm文件的副本並更新m_pszHelpFilePath以指向該位置。現在,幫助查看器進程應該能夠成功加載幫助。

+0

感謝您與我一起努力。但我仍然沒有看到問題解決。首先,正如我在OP中提到的,我有三個這樣的程序。另外兩個人的幫助工作正常。其次,在新的應用模型中,幫助不起作用幾乎是不可接受的。 Windows HtmlHelp()API應該可以工作!除了我的一個應用程序之外,它都可以。 –

+0

MFC模型是25年前發明的,當時軟件是在一個盒子裏買來的,每個人都是管理員,互聯網和安全都不是問題。這導致了今天存在的許多問題:DLL地獄,註冊表腐爛,安全和隱私問題,只提幾個。從這個時代移動應用程序時,我們需要應用新模型中的規則,在某些情況下,這需要您進行一些代碼更改,例如在這種情況下。我很樂意看看爲什麼其他應用程序中的幫助無需更改即可正常工作。那些已經在商店中,所以我可以看看? –

+0

Windows也很古老。 Windows API需要工作來保持Windows的可行性。我認爲幫助仍然很重要(儘管微軟看起來並不如此)。我的其他應用程序尚未在商店中生效,並且在它們發佈時不會免費。我確實有一位微軟聯繫人一直在幫助我使用Desktop Bridge。我想他會進一步考慮這一點。我很想讓其他人看一看,但我可能需要分享信息和比特,這在Stackoverflow上不合適。 –

相關問題