微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Squirrel 创建并执行包

如何解决Squirrel 创建并执行包

我们有一个新的 Squirrel 包,其中包含我们的 C# 可执行文件(.Net Core 3.0)和开源 NSSM(第 3 方 EXE)。

只要有这个 EXE,它就会变成 1 - 得到一个快捷方式和 2 - 被 Squirrel 执行,它试图提供帮助。但是我们不希望 NSSM 被执行!

在我们的 C# 应用程序中,我实现并处理了 Squirrel 事件,并通过如下所示的消息框证明了这一点:

using (var mgr = new UpdateManager("http://updatepath"))
{
    SquirrelAwareApp.HandleEvents(
        onInitialInstall: v => MessageBox.Show("onInitialInstall"),onAppUpdate: v => MessageBox.Show("onAppUpdate"),onAppUninstall: v => mgr.RemoveShortcutForThisExe(),onFirstRun: () => MessageBox.Show("onFirstRun"));
}

我的`onFirstRun1 处理程序消息框显示正确,所以我知道正在处理 Squirrel 事件,并且我的 C# 应用程序可以识别 Squirrel。

然而,NSSM 仍在启动,Squirrel 安装日志文件仍然显示

[20/06/21 18:52:09] 信息:ApplyReleasesImpl:即将保存快捷方式:C:\Users\me\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\path\NSSM 32-bit .lnk (目标 C:\Users\me\AppData\Local\MyInstaller\nssm.exe,workingDir C:\Users\me\AppData\Local\MyInstaller\app-1.0.3,args,toastActivatorcslID b08a06b3-8113-5e78- bdad-e989db8e9d25) [20/06/21 18:52:09] 信息:ApplyReleasesImpl:为 nssm.exe 创建快捷方式 => C:\Users\me\Desktop\NSSM 32-bit.lnk [20/06/21 18:52:09] 信息:ApplyReleasesImpl:即将保存快捷方式:C:\Users\me\Desktop\NSSM 32-bit.lnk(目标 C:\Users\me\AppData\Local\MyInstaller \nssm.exe,workingDir C:\Users\me\AppData\Local\MyInstaller\app-1.0.3,args,toastActivatorcslID b08a06b3-8113-5e78-bdad-e989db8e9d25) [20/06/21 18:52:09] 信息:ApplyReleasesImpl:启动 fixPinnedExecutables

解决方法

来自回购所有者:

“我相信这里的问题是 .net 核心创建了一个存根可执行文件,它没有嵌入 squirrel 属性 - 相反,它们最终出现在您的 DLL 中。这里的解决方案是将 squirrel 更新为使用 .net core 玩得更好,这似乎没有人愿意接受。”

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。