有没有办法将Nullsoft Installer Script(NSI)设置编译为MSI包而不是EXE?
答案 0 :(得分:27)
不幸的是,没有。
NSIS允许您创建可编写脚本的过程安装包。它简单易用,并具有Windows Installer中不存在的许多功能。
Windows Installer(MSI)创建数据库驱动的事务安装包。正确编写Windows Installer程序包非常强大时,文件会被损坏/删除,并会自动重新安装。 Windows Installer了解UAC并且只在需要时才提升,基本上如果您正在为公司市场创建软件,则需要提供MSI。
查看The Definitive Guide to Windows Installer,了解对MSI的理解。
答案 1 :(得分:17)
可以使用MSI Wrapper将NSIS安装程序包装在MSI文件中。这是我用来包装NSIS和Inno Setup安装程序的小工具。它使用WiX编译MSI,但有一个GUI可以帮助您而不是XML文件。
之所以这是因为我需要一个基于传统EXE安装程序创建MSI文件的工具。我需要支持卸载和升级,只希望包装的安装程序在控制面板的“添加/删除”程序中显示一次。
我还希望能够在安装MSI时将命令行参数传递给包装的安装程序。
如果您想使用它或帮助我改进它,您可以在http://www.exemsi.com找到它。
我认为将可执行安装程序包装在MSI包中并不是理想的解决方案。但是,当你已经拥有exe时,它可以很有意义: - )
答案 2 :(得分:12)
否(并且没有计划支持.MSI输出),请尝试WIX