希望这仍然是StackOverflow的主题。
我正在Linux机器上进行所有开发,但代码将由Linux和Windows机器运行。
我想用Linux编译代码,我有mingw-32和mingw-w64。
但我想将生成的可执行文件打包成一个漂亮的MSI安装文件。是否可以使用Linux中的实用程序或在Wine下运行来执行此操作?
谢谢!
答案 0 :(得分:15)
您可以结合使用Wine,Mono和WiX在Linux上创建.msi包。
对于openSUSE,我创建了一个名为wixwine的包装器包,它可以从Windows Installer XML(WiX)工具集中为您提供“蜡烛”和“轻量级”命令,可以在Linux上使用。
你可以找到我的wixwine包here
答案 1 :(得分:6)
我刚刚发布了ms0ools的v0.01,这是一组用于检查和创建的实用程序 Windows Installer文件。它基于Wine代码,但移植到POSIX。
你可以在http://bonzini.fedorapeople.org/找到源代码和二进制包 - 遗憾的是你需要从git构建libgsf,因为我发现了一个bug,并且没有发布的版本现在有修复。链接页面上有Fedora RPMs和修复程序。
$ msiinfo streams ~/download/Firefox-16.0.2-it.msi
Binary.New
Binary.Up
Binary.info
Binary.dlgbmp
Binary.CustomBin
Binary.bannrbmp
Binary.completi
Binary.custicon
Binary.exclamic
Binary.insticon
Binary.removico
Binary.repairic
_MAKEMSI_Cabs.MM01.cab
Binary.BannerGraphic.BMP
Icon.firefox.16.0.2.0.ico.exe
DigitalSignature
SummaryInformation
$ msiinfo extract ~/download/Firefox-16.0.2-it.msi _MAKEMSI_Cabs.MM01.cab > firefox.cab
$ cabextract -l firefox.cab
Viewing cabinet: firefox.cab
File size | Date Time | Name
-----------+---------------------+-------------
917984 | 24.10.2012 12:50:38 | firefox.exe
18912 | 24.10.2012 12:50:38 | AccessibleMarshal.dll
有一个配套实用程序msibuild来构建MSI。它非常低级,但您可以将这两个工具结合使用,对您在Windows上制作的MSI进行细微更改。
update :现在托管在https://live.gnome.org/msitools,它还有一个支持WiX XML子集的工具(wixl)。需要libgsf 1.14.25或更新版本。 Fedora 18和更新版的包装。