在 Windows10 上使用 NSIS 启用应用侧载

Enabling app sideloading using NSIS on Windows10

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

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

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

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

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

64 位版本的 Windows 有一个 64 位和一个 32 位的注册表 "version",这意味着您在 Regedit 中看到的内容可能与32 位应用程序可见。 使用 SetRegView 指令更改安装程序使用的视图。

Process Monitor 是调试注册表问题的有用工具...