0

我開發了一個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; 
} 

這有點牽強,但也許它是與數字簽名?

+0

我們可以看到這個MSI嗎?如果我們能夠確信我們可以弄清楚發生了什麼事情。如果它很大,你可以在其上運行一個[**管理安裝**](https://stackoverflow.com/questions/1547809/extract-msi-from-exe/24987512#24987512)並且只上載基本MSI(沒有嵌入式駕駛室)的地方。這意味着它無法安裝,但可以查看。在上面的鏈接中閱讀關於管理員安裝的信息,或者嘗試運行(在標準命令提示符下 - 根據需要調整路徑):''msiexec/a File.msi TARGETDIR = C:\ MyInstallPoint/qn''來創建一個。 –

+0

我沒有意識到松鼠製造MSI。我以爲我最後一次檢查它只是使EXE(每用戶autoupdating) –

+0

@SteinÅsmul感謝您的回答!我不確定你的意思。我運行了你提到的'cmd'命令,它創建了一個'.exe'文件,這個文件效果很好(儘管我仍然試圖找出'.msi'的錯誤)。我不完全知道你會喜歡我上傳。 – madasionka

回答

0

我發現這一點:https://github.com/Squirrel/Squirrel.Windows/blob/master/docs/using/machine-wide-installs.md

它說:

整機全已安裝松鼠的Releasify命令生成適合於通過組策略安裝的MSI 文件。此MSI不是 通用安裝程序,這意味着一旦您運行MSI,用戶 從現在開始將在下一次登錄時安裝應用程序。

因此,大多數普通用戶應該繼續運行Setup.exe的通過Releasify產生 ,但如果你想有一個IT管理員友好的版本, 可以用手關閉MSI

松鼠的大多數深得用戶儘管某些NuGet軟件包ID /名稱可能會導致MSI出現 問題,但您無需執行任何新操作即可啓用此行爲。

它看起來像我的.msi工作得很好,只有我期望不同的結果。

1

只是第一個建議 - 它不是一個真正的答案。我會更新,因爲我們獲得更多信息:如果您安裝了Windows SDK,您可以搜索Orca-x86_en-us.msi。安裝此MSI,您將可以訪問「Orca」 - 一個MSI文件查看器。在Orca中打開MSI,然後通過Tools - > Validate運行驗證。單擊開始(也許取消選中INFO消息的複選框)。應該有一個Orca添加到開始菜單的快捷方式。請用任何錯誤消息更新您的答案。

+0

FWIW我已經寫了幾個NW和Electron應用程序,我就像使用其他桌面應用程序一樣使用WiX/IsWiX打包它們。我沒有看到需要他們自己的利基包裝堆棧的任何特別的東西。 –

+0

@SteinÅsmul謝謝,我做了你所說的並且運行了沒有產生任何錯誤的Orca驗證。這很有用,因爲我想我找到了答案爲什麼'.msi'沒有像我期望的那樣工作(詳情見下面的答案)。 – madasionka