3

我有一个需要侧载的 Windows 通用应用程序。我正在使用 NSIS 和 powershell 脚本来安装它。我想让 NSIS 安装程序在 Windows 设置中启用应用程序旁加载。我已经查看了 Microsoft 提供的有关启用应用程序侧载的文档 ( https://msdn.microsoft.com/library/windows/apps/xaml/dn706236.aspx )。

如果我从文档中运行 powershell 命令以在独立的 powershell 窗口中设置注册表,它工作正常,我可以安装应用程序。但是,当我将注册表命令放入安装程序时,它不起作用。我尝试使用 Powershell 和 NSIS 来设置注册表。使用WriteRegDWORDNSIS 的reg add命令和 Powershell 的命令都说他们成功了。读回这些值会产生正确的值。如果我尝试Set-ItemProperty在 Powershell 脚本中设置注册表,它会抱怨路径 HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock 不存在。

似乎没有任何方法可以判断 Powershell 是否启用了侧载。即使在安装程序上下文之外检查注册表也不是有效的解决方案,因为通过 Windows 设置启用旁加载不会设置注册表。

所以我目前的解决方案是尝试安装该应用程序。如果安装失败,请检查错误消息并查看它是否抱怨未启用侧载。如果是这种情况,则打开 Windows 设置到开发人员功能页面并弹出一条消息,提示需要启用侧载才能继续。然后在关闭 Windows 设置后重新尝试安装该应用程序。

是否可以从 NSIS 安装程序启用旁加载?或者是否可以检查是否启用了侧载?

4

1 回答 1

3

64 位版本的 Windows 具有 64 位和 32 位“版本”的注册表,这意味着您在 Regedit 中看到的可能与 32 位应用程序看到的不同。使用SetRegView说明更改安装程序使用的视图。

进程监视器是调试此类注册表问题的有用工具...

于 2015-09-03T23:49:47.597 回答