我们有一个新的Squirrel包,其中包含我们的C#可执行文件(.Net Core 3.0(和开源NSSM(第三方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#应用程序是Squirrell感知的。
然而,NSSM仍在启动中,Squirrel安装日志文件仍然显示:
[20/06/21 18:52:09]信息:ApplyReleaseImpl:即将保存快捷方式:C:\Users\me\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\path\NSSM 32-bit.lnk[20/06/21 18:52:09]信息:ApplyReleasesImpl:为nssm.exe创建快捷方式=>C: \Users\me\Deskt\NSSM 32-bit.lnk[20/06/21 18:52:09]信息:ApplyReleaseImpl:即将保存快捷方式:C:\Users\me\deskt\NSSM 32-bit.lonk(目标C:\Users\me \AppData\Local\MyInstaller\nsm.exe,workingDir C:\Users\my\AppData\\Local\MyInstaller \app-1.0.3,args,toast ActivatorCSLID b08a06b3-8113-5e78-bdad-e989db8e9d25([20/06/21 18:52:09]信息:ApplyReleaseImpl:正在启动fixPinnedExecutables
来自回购所有者:
"我认为这里的问题是.net核心创建了一个存根可执行文件,它没有嵌入松鼠属性——相反,它们最终会出现在DLL中。这里的解决方案是更新松鼠以更好地使用.net内核,这似乎没有人愿意接受;