Electron Squirrel.Windows:。msi无效

时间:2017-09-15 09:13:00

标签: windows-installer electron electron-packager squirrel.windows

我开发了一个Electron应用程序并使用$keywords = explode(" ", $_POST['query']); $query = "SELECT phone.id, phone.imei, phone.model, phone.color, phone.capacity, phone.grade, phone.sourcing, phone.entry, phone.canal, phone.sale, phone.state, phone.snowden FROM phone LEFT JOIN capacity ON (phone.capacity = capacity.id) LEFT JOIN color ON (capacity.color = color.id) LEFT JOIN model ON (color.model = model.id) LEFT JOIN grade ON (phone.grade = grade.id) WHERE "; $query_array = array(); for ($i = 0; $i < count($keywords); $i += 1) { $query .= " ( phone.imei LIKE :search_" . $i; $query .= " OR phone.sourcing LIKE :search_" . $i; $query .= " OR phone.canal LIKE :search_" . $i; $query .= " OR phone.entry LIKE :search_" . $i; $query .= " OR phone.sale LIKE :search_" . $i; $query .= " OR phone.state LIKE :search_" . $i; $query .= " OR ( phone.snowden = 1 AND ':search_" . $i . "' = `snowden` )"; $query .= " OR model.name LIKE :search_" . $i; $query .= " OR color.name LIKE :search_" . $i; $query .= " OR capacity.amount LIKE :search_" . $i; $query .= " OR grade.name LIKE :search_" . $i; if ($i != (count($keywords) - 1)) { $query .= " ) AND "; } else { $query .= " ) "; } if (strtolower($keywords[$i]) == 'snowden') { $query_array['search_' . $i] = $keywords[$i]; } else { $query_array['search_' . $i] = "%" . $keywords[$i] . "%"; } } $query .= "ORDER BY phone.id DESC"; $results = $stock->prepare($query); $results->execute($query_array); 然后eletron-packager创建了electron-squirrel-startup.exe个安装程序文件。 .msi文件工作正常,但.exe不正常。看起来它只是在某个时刻停止并关闭。在控制面板中,我可以看到“my_app Machine-Wide Installer”,我不确定这是否是所需的效果,但是仍未安装my_app。

我有一个非常基本的handleSquirrelEvents函数:

.msi

这有点牵强,但也许它与数字签名有关?

2 个答案:

答案 0 :(得分:1)

只是第一个建议 - 这不是一个真正的答案。我将在获取更多信息时进行更新:如果您安装了Windows SDK,则可以搜索Orca-x86_en-us.msi。安装此MSI,您将可以访问&#34; Orca&#34; - MSI文件查看器。在Orca中打开您的MSI并通过工具运行验证 - &gt;验证。单击Go(可能取消选中INFO消息的复选框)。 Orca应该有一个快捷方式添加到开始菜单中。请使用任何错误消息更新您的答案。

答案 1 :(得分:0)

我发现了这个:https://github.com/Squirrel/Squirrel.Windows/blob/master/docs/using/machine-wide-installs.md

它说:

  

全机安装Squirrel的Releasify命令会生成一个MSI   适合通过组策略安装的文件。这个MSI不是   通用安装程序,这意味着一旦您运行MSI,用户   从现在开始,将在下次登录时安装该应用程序。

     

因此,大多数普通用户应该继续运行生成的Setup.exe   通过Releasify,但如果您想拥有IT Admin Friendly版本,   你可以交出MSI

     

Squirrel的大多数用户都不需要做任何新的事情来启用此功能   行为,虽然某些NuGet包ID /名称可能会导致   MSI的问题。

看起来我的.msi工作得很好,只是我期待不同的结果。