MSI
From Wine-Wiki
Contents |
Introduction
Continued progress has been made with Wine and MSI. Windows Installer manages the installation and removal of software by applying a set of centrally defined setup rules during the installation process. These setup rules define the installation and configuration of the installed application and you can use this service to modify, repair, or remove an existing application. The installation files are recognized by their name (.msi). This holds information regarding the application setup and installations. Windows Installer appears to be a component of Windows 2000 or later. MSI files cannot be run directly, you need to use Wine's "msiexec" program to install them
J. Hawkins [Sept 06]: InstallShield is produced and provided by Macrovision. InstallShield does require a dll in order to work: msi.dll. InstallShield is just a fancy wrapper around MSI, and, no, it's not a part of the Microsoft Windows Operating System in any way.
M.McCormack [Sept 05]: If anybody is aware of any cases of Wine's Microsoft Installer code not working, please log them in Wine's bugzilla (http://bugs.winehq.org/), assign them to me, and I will attempt to fix them.
Make sure to set "msi" = "builtin", "*msiexec" = "builtin" when testing your installers, and if possible test with the latest Wine CVS. If the installer is available as a free download, please include a link to it.
Dan Kegel's Winetricks can apparently install a Microsoft version of Msiexec for those needing it.
Installing an .msi
A user asked: How I install .msi files on WINE. J von Thadden [Dec 05] [wine archive http://www.winehq.org/pipermail/wine-users/2005-December/020055.html]:
wine msiexec /i xyz.msi
Anon [Sept 07]: Another way is just run:
msiexec /i fileinstaller.msi
vitamin 4 apr 2008 wine user : It is not an executable file. This is how to do it:
Code: wine start setup.msi
Auto executable MSI
An exe may give an msi error:
'/home/carl/OperaDownloads/MTSDK_v3.0.2/MTSDK_v3.0.2.exe'
Usage: Install a product: msiexec {package|productcode} [property] msiexec /i {package|productcode} [property]
Vitamin: Looks like a long known problem. You might want to extract content of the exe file. And use msiexec directly on the .msi file that's inside that archive.
[Unknown] There is a msi installer inside that file at offset 249586. Hint : $ dd if=MTSDK_v3.0.2.exe of=MTSDK_v3.0.2.msi bs=512 skip=488
- 464190+1 records in 464190+1 records out 237665656 bytes (238 MB) copied, 19.703 s, 12.1 MB/s
Thanks a lot. That worked and the msi file seems to install ok with 'msiexec /i file.msi'.
C. Fisher [May 08 wne user] showed how it was worked out in this case:
- Grep for "Microsoft Installer" in /usr/share/file/magic.
- Find \xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3E\x00\x03\x00\xFE\xFF Microsoft Installer
- hexedit MTSDK_v3.0.2.exe
- Search for D0CF11...
- Found at 0x3D000 (249856) just after a load of PADDING bytes. Block size is 512 so 249856/512 = 488 blocks.
- Use dd to extract the msi file.
[..] All I did previously was run cabextract but that extracts the contents of the msi file too instead of just removing the extra header.
He reported: The msi file runs but after I enter the registration key I can't get to the next step in the installation despite clicking Next and hitting Return several times. D. Kegel: Time to file a bug at http://bugs.winehq.org, I think.
Forum Comments
- [Jul 06]The following patch:http://winehq.org/pipermail/wine-cvs/2006-July/024546.html breaks the PSDK installer. J. Lang had a quick look and thought he spotted the problem: I'll submit a patch on Monday
- H. Leidekker {jun 06]: a little searching turned up [an overview of msi condition operators] wine archive:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/conditional_statement_syntax.asp
- [Jun 06] A programmer noticed an error with MSI and a game. He provided an analysis but was unfamiliar with Wine. M. McCormack: Thanks for the analysis. Do you think you could add a test case to dlls/msi/tests/db.c that shows the correct behaviour of the above query on Windows for me? If you can do that, I'll have a go at fixing it. wine archive. The programmer queried the best way to do this and M. Hean said: [regarding running this on windows] You don't have to, you just need to run it against a native MSI. As to how to convert your findings into a test case, I guess that may be trickier. There is some fundamental behavior here that is wrong, so creating a database that shows the problem then testing queries on it might work?
- [May 06] A developer posted his analysis of what causes the cabinet bugs in bugs #4533 and #5139. wine archive and again.. wine archive
- [2005] Some installations work well. Those that make use of extended features may fail without native dlls. Example: Wine Archive Link
- You could help Wine by implementing the function that failed
- Or you could hire a programmer to implement this missing function on Wine's implementation of MSI
- When the Wine MSI fails, you can use the native dlls (in this case for setup.exe) by typing
WINEDLLOVERRIDES="msi=n;msiexec=native" setup.exe
- [Dec 05] B. Medland discovered an issue which he described carefully. [It appeared that this was then fixed.] wine archive
- Wine-20050524 may require further steps. See the instructions on the Developer Wiki: Native MSI
- A user of Wine 20050524, trying to install Art Explosion Greetings Card Factory - which was successful on a version of wine about 5 months ago. Now gets lots of errors like the following, and then eventual complete failure:
- err:msi:ACTION_InstallFiles Unable to move/copy file (L"Z:\\cdrom\\GCF\\PROGRA~1\\ARTEXP~1\\GREETI~1\\Wizards\\ANNOUN~1\\STRICT~1\\PROMOT~1.LAX" -> L"c:\\Program Files\\Art Explosion\\Greeting Card Factory\\Wizards\\Announcements\\Strictly Business\\Promotion.lax") (error 3)
- U. Bonnes: No chance with 20050524. Use recent CVS or wait for next release Wine Archive
- A user of Wine 20050524, trying to install Art Explosion Greetings Card Factory - which was successful on a version of wine about 5 months ago. Now gets lots of errors like the following, and then eventual complete failure:
- Further Details Unknown
Troubleshooting
How to override the built-in MSI?
A user reported that with their installation the had quite a few MSI errors and asked How do I override the built in msi [and install the native Microsoft MSI Installer]?
M. Hearn: "WINEDLLOVERRIDES=msi,msiexec=native" should do the trick Wine Archive Link
Installing Microsoft MSI 2.0
[From the Wine Forums July 05] Wine Archive
- Run wine instmsia.exe.
- The installer will complain, but it will dump everything you need into Windows\Installer\InstMsi0.
- Copy all the stuff in there to \Windows\system32.
- Then (using Winecfg) set msi.dll and msiexec.exe to native, and Windows Installer will work.
A user posted [May 05]: This patch breaks installation of Microsofts MSI 2.0, InstMsiA.exe. Wine Archives
M. Hearn explained that this patch was concerning Wine and versioning logic : At WineConf I asked Alexandre if he would accept a patch that just deleted the automagic version logic and he said yes. It causes far more problems than it's worth IMHO.
- [Update] A Patch was accepted.
R. Cohen [May 05]: The latest version of Wine does have problems with InstMsiA.exe, but I haven't seen this one. I've updated the Wiki page at http://wiki.winehq.com/NativeMsi.
S. Paschukat: I have to remove the symbolic link to msiexec.exe.so in the windows\system dir before starting InstMsiA.exe - and maybe restoring it after, like:
--------------- snip --------------- cd ~/.wine/drive_c/windows/system if test -e msiexec.exe" ;then mv msiexec.exe msiexec.exe.wine fi WINEDLLOVERRIDES="msiexec.exe=n,b" wine InstMsiA.exe if test -e msiexec.exe.wine ;then if test -e msiexec.exe ;then mv msiexec.exe msiexec.exe.windows fi mv msiexec.exe.wine msiexec.exe fi
Links
Wine Links
- MSI Installer and Apache
- Wine Developer Wiki: Installing Native MSI
- Wine Developer Wiki: The Microsoft Installer
- Wine WWN issue 276 MSI Dialogs and Office 2003

