在Wine中构建MSI

时间:2012-04-20 04:56:14

标签: linux windows-installer wine

希望这仍然是StackOverflow的主题。

我正在Linux机器上进行所有开发,但代码将由Linux和Windows机器运行。

我想用Linux编译代码,我有mingw-32和mingw-w64。

但我想将生成的可执行文件打包成一个漂亮的MSI安装文件。是否可以使用Linux中的实用程序或在Wine下运行来执行此操作?

谢谢!

2 个答案:

答案 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和更新版的包装。