有沒有什麼辦法可以將Nullsoft安裝程序腳本(NSI)設置編譯爲MSI包而不是EXE?構建NSIS腳本作爲MSI包
回答
不幸的是,第
NSIS可以讓你創建腳本化,程序安裝包。它非常簡單,易於使用,並且具有許多Windows安裝程序中不存在的功能。
Windows Installer(MSI)創建數據庫驅動的事務安裝包。正確編寫Windows Installer軟件包非常健壯時,文件會被損壞/刪除,並且會自動重新安裝。 Windows安裝程序知道UAC,只有在需要時才升級,基本上,如果您要爲企業市場創建軟件,則需要提供MSI。
查看The Definitive Guide to Windows Installer瞭解MSI的一個很好的介紹。
NSIS安裝程序可以使用MSI Wrapper封裝在MSI文件中。這是我用來包裝NSIS和Inno Setup安裝程序的一個小工具。它使用WiX來編譯MSI,但是有一個GUI來幫助你而不是XML文件。
這是因爲我需要一個基於傳統EXE安裝程序創建MSI文件的工具。我需要支持卸載和升級,只希望封裝的安裝程序在控制面板的「添加/刪除程序」中顯示一次。
我也希望能夠在安裝MSI時將命令行參數傳遞給封裝的安裝程序。
如果你想使用它或幫助我改進它,你可以在http://www.exemsi.com找到它。
我同意將可執行安裝程序包裝到MSI軟件包中並不是理想的解決方案。然而,當你已經有exe文件時,它可以產生很大的意義:-)
聖潔的廢話!這應該內置於NSIS!現在給它一個嘗試。 – BrainSlugs83 2013-01-21 07:11:36
神聖的廢話是對這種模式的很好的描述。它根本沒有意義......對不起。 – 2013-07-21 20:15:02
- 1. 構建java項目的NSIS腳本?
- 2. 創建NSIS包作爲構建的一部分
- 3. 在NSIS腳本
- 4. 在CMake中包含NSIS腳本
- 5. Ant構建文件來編譯NSIS腳本
- 6. 部署:MSI軟件包vs腳本
- 7. MSI包的預安裝腳本
- 8. 將InstallShield MSI/Project轉換爲NSIS
- 9. TFS爲版本創建構建腳本
- 10. NSIS execwait我NSIS腳本返回7
- 11. 使用powershell腳本創建msi
- 12. 使用RCurl包構建腳本
- 13. 從腳本中「構建部署包」VS2010
- 14. .msi作爲文本下載
- 15. 如何爲構建構建構建腳本
- 16. NSIS中的卸載腳本
- 17. NSIS腳本:嵌入安裝
- 18. 如何使用NSIS腳本
- 19. 查找來自NSIS腳本
- 20. 通過NAnt構建MSI構建
- 21. NSIS腳本封裝到PS1到EXE和作爲管理運行
- 22. 如何通過NANT腳本爲數據庫創建MSI
- 23. Python構建腳本
- 24. Eclipse構建腳本
- 25. Maven-構建腳本
- 26. requireJs構建腳本
- 27. Ant構建腳本
- 28. 作爲Jenkins構建操作運行Nant腳本
- 29. 無法通過腳本爲整個項目構建包
- 30. 是否可以使用NSIS來打包MSI安裝程序?
此外:MSI存在很多問題 - 您需要舉一個例子,爲x86和x64創建單獨的安裝程序(其中一個例子:MSI可以總是提升或永不提升 - 它不能同時實現) - 我想象這些限制在NSIS中不存在。 – BrainSlugs83 2013-01-20 10:52:39
@ BrainSlugs83請參閱MSI系列中的UAC。如果你寫得正確,沒有限制:) http://blogs.msdn.com/b/rflaming/archive/2006/10/01/uac-in-msi-notes-how-to-build-packages-that -work-for-both-standard-user-and-per-machine.aspx – saschabeaumont 2013-01-25 09:44:19
另一個好處是利用NSIS內部的MSI包裝。這對於IT部門將Windows Installer服務設置爲禁用(或手動)時非常有用。你可以讓你的NSIS安裝程序檢查這個,啓用該服務,然後提取並執行你的MSI。 無論它是一個很好的寫法,@saschabeaumont – Damian 2014-11-03 21:45:29