2017-09-15 105 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上不合适。 –

相关问题