C# 実行可能ファイル (.Net Core 3.0) とオープン ソース NSSM (サードパーティ EXE) を含む新しい Squirrel パッケージがあります。
この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、引数、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 の開始