我開發了一個Electron應用程序並使用了eletron-packager
,然後electron-squirrel-startup
我創建了.exe
和.msi
安裝程序文件。 .exe
文件工作正常,但.msi
不是。它看起來只是在某個點停下來並關閉。在控制面板中,我可以看到「my_app機器範圍安裝程序」,我不確定這是否是所需的效果,但是,my_app未安裝。Electron Squirrel.Windows:.msi無法正常工作
我有一個非常基本的功能handleSquirrelEvents:
switch (squirrelEvent) {
case '--squirrel-install':
case '--squirrel-updated':
// Optionally do things such as:
// - Add your .exe to the PATH
// - Write to the registry for things like file associations and
// explorer context menus
// Install desktop and start menu shortcuts
spawnUpdate(['--createShortcut', exeName]);
setTimeout(application.quit, 1000);
return true;
case '--squirrel-uninstall':
// Undo anything you did in the --squirrel-install and
// --squirrel-updated handlers
// Remove desktop and start menu shortcuts
spawnUpdate(['--removeShortcut', exeName]);
setTimeout(application.quit, 1000);
return true;
case '--squirrel-obsolete':
// This is called on the outgoing version of your app before
// we update to the new version - it's the opposite of
// --squirrel-updated
application.quit();
return true;
}
這有點牽強,但也許它是與數字簽名?
我們可以看到這個MSI嗎?如果我們能夠確信我們可以弄清楚發生了什麼事情。如果它很大,你可以在其上運行一個[**管理安裝**](https://stackoverflow.com/questions/1547809/extract-msi-from-exe/24987512#24987512)並且只上載基本MSI(沒有嵌入式駕駛室)的地方。這意味着它無法安裝,但可以查看。在上面的鏈接中閱讀關於管理員安裝的信息,或者嘗試運行(在標準命令提示符下 - 根據需要調整路徑):''msiexec/a File.msi TARGETDIR = C:\ MyInstallPoint/qn''來創建一個。 –
我沒有意識到松鼠製造MSI。我以爲我最後一次檢查它只是使EXE(每用戶autoupdating) –
@SteinÅsmul感謝您的回答!我不確定你的意思。我運行了你提到的'cmd'命令,它創建了一個'.exe'文件,這個文件效果很好(儘管我仍然試圖找出'.msi'的錯誤)。我不完全知道你會喜歡我上傳。 – madasionka