newb question
Just started using windows installer. Is there a reason to create an exe to run an .msi file? Lets say I go through the process of creating an .msi file using orca (for example), should I create an exe to run that .msi or is it enough to just have the user double click my .msi file to run the installation. I find it a bit confusing that I can click my .msi file and run the installation, yet I see some installation distributions have an exe and an .msi file. The windows installer documentation does not seem to directly address this with any bit of normalcy.
0 Comments
[ + ] Show comments
Answers (18)
Please log in to answer
Posted by:
rikx2
19 years ago
Posted by:
jayvatar
19 years ago
k, see thats the kind of information that should probably be provided more forward in the windows installer documentation(I might of glazed over it somehow). Course I am dealing with mostly 2k and xp 32bit machines with a very small user base so that sort of testing should not be necessary, because of the default windows installer install with os install. What libraries and language combinations could I use if I were to build an exe to bootstrap my .msi installation process?
Thanks
Thanks
Posted by:
VikingLoki
19 years ago
Just say NO to bootstrapping!!
It was a concept invented by InstallShield in the Win 95/98 days when one could not be sure if Windows Installer existed on the machine. It also checks for the existance of and version level of an InstallShield Script driver, which is a proprietary Windows Installer add-on for extra bells & whistles used by InstallShield. This creates a major headache for repackagers attempting to conform applications to corporate level standards.
You're not using InstallShield Script and everyone had better have Windows Installer on their Windows machines by now. (Otherwise you are running 95/98/NT in desperate need of a current service pack) You can check base OS requirements in the MSI. There is absolutely no point in creating a bootstrap .exe for your MSI. It will do nothing but limit your deployment options.
There is no Windows Installer documentation on it because it is a violation of Windows Installer standards.
It was a concept invented by InstallShield in the Win 95/98 days when one could not be sure if Windows Installer existed on the machine. It also checks for the existance of and version level of an InstallShield Script driver, which is a proprietary Windows Installer add-on for extra bells & whistles used by InstallShield. This creates a major headache for repackagers attempting to conform applications to corporate level standards.
You're not using InstallShield Script and everyone had better have Windows Installer on their Windows machines by now. (Otherwise you are running 95/98/NT in desperate need of a current service pack) You can check base OS requirements in the MSI. There is absolutely no point in creating a bootstrap .exe for your MSI. It will do nothing but limit your deployment options.
There is no Windows Installer documentation on it because it is a violation of Windows Installer standards.
Posted by:
rikx2
19 years ago
Posted by:
MSIMaker
19 years ago
Posted by:
jayvatar
19 years ago
Ok, the reason I asked was that I felt ackward having only an msi file. It seems that many installations usually have a setup.exe or some other exe to perform the install. Rarely am I clicking on an msi file for an install. My guess is that those cases are usually for widely distributed files in which the developer does not have a controlled user base and needs to test OS vers.
Posted by:
VikingLoki
19 years ago
Actually, you can check OS requirements within the MSI. You can check for product installations, versions, file existence/date/time, regkey existence/value... Heck, you can call DLLs, JScript, VBScript, external .exe's, there's a lot of room for customizing. It seems to me that the main reason why setup.exe still exists is out of sheer habit.
Posted by:
Lillude
19 years ago
Posted by:
plangton
19 years ago
Hi,
At the risk of sounding like an Installshield fanboy, I do like to correct a lot of the myths about Installshield for repackagers, and I see them all the time:
"Installshield creates msi installations that install a script engine that may not be needed but if it breaks then every msi is stuck on the machine until you rebuild it"
I hate ISSCRIPT as much as the next repackager, but the above sentence makes it sound like a default function of Installshield to install a script engine, as in any package created with Installshield will use it. This is simply not true. You can (and should) create MSI's with installshield that do not require ISSCRIPT, and in fact its default state (talking about Adminstudio 5 and up) is to not require ISSCRIPT. While developers keep on using it, Installshield will keep on selling it.
Also, if the isscript.msi breaks, it will not stop "every" msi, only ones that require ISSCRIPT (which is a lot of vendor provided MSI's I admit, again back to silly developers). You can still make fully functional MSI's with installshield and deploy them to a machine with a corrupt installation of isscript without any dramas. As long as it doesn't use isscript.
Rgds
Paul
At the risk of sounding like an Installshield fanboy, I do like to correct a lot of the myths about Installshield for repackagers, and I see them all the time:
"Installshield creates msi installations that install a script engine that may not be needed but if it breaks then every msi is stuck on the machine until you rebuild it"
I hate ISSCRIPT as much as the next repackager, but the above sentence makes it sound like a default function of Installshield to install a script engine, as in any package created with Installshield will use it. This is simply not true. You can (and should) create MSI's with installshield that do not require ISSCRIPT, and in fact its default state (talking about Adminstudio 5 and up) is to not require ISSCRIPT. While developers keep on using it, Installshield will keep on selling it.
Also, if the isscript.msi breaks, it will not stop "every" msi, only ones that require ISSCRIPT (which is a lot of vendor provided MSI's I admit, again back to silly developers). You can still make fully functional MSI's with installshield and deploy them to a machine with a corrupt installation of isscript without any dramas. As long as it doesn't use isscript.
Rgds
Paul
Posted by:
rianf
19 years ago
Hey guys,
I’m creating a collection of installers and the requirement is for an msi (for network admins) & an exe (for end users) for deployment across corporate & "general" end users. I am doing it all through command line using WIX. Creating the msi is fine BUT building a bootstrapper is my problem. Does anyone have any ideas or know of any tools (pricing is important as there will be a need for 1000+ licenses) that builds setup exe from my generated WIX msi?
Sorry slightly off topic but I think you might be able to help me!
Thanks in advance,
Rian Fergusson
I’m creating a collection of installers and the requirement is for an msi (for network admins) & an exe (for end users) for deployment across corporate & "general" end users. I am doing it all through command line using WIX. Creating the msi is fine BUT building a bootstrapper is my problem. Does anyone have any ideas or know of any tools (pricing is important as there will be a need for 1000+ licenses) that builds setup exe from my generated WIX msi?
Sorry slightly off topic but I think you might be able to help me!
Thanks in advance,
Rian Fergusson
Posted by:
glwday
19 years ago
Posted by:
rianf
19 years ago
Posted by:
MSIMaker
19 years ago
ORIGINAL: rianf
Hey guys,
I’m creating a collection of installers and the requirement is for an msi (for network admins) & an exe (for end users) for deployment across corporate & "general" end users. I am doing it all through command line using WIX. Creating the msi is fine BUT building a bootstrapper is my problem. Does anyone have any ideas or know of any tools (pricing is important as there will be a need for 1000+ licenses) that builds setup exe from my generated WIX msi?
Sorry slightly off topic but I think you might be able to help me!
Thanks in advance,
Rian Fergusson
I'm confused as to why you need 2 types of installs?
Using MSI's for both would be much cleaner and easier
Posted by:
rianf
19 years ago
Hi MSIMaker,
I need to create 2 installers for the following reasons:
1. MSI for network level deployment via such tools as Microsoft SMS, HP OpenView...
2. EXE for users to locally install.
I have been using Wise to create installation packages but we are moving to WIX. The problem is that WIX will only generate an MSI where Wise created an MSI + a bootstrap EXE. A bootstrap EXE is a requirement as it provides a user friendly GUI that can be branded, allows fluid version upgrades to name a few. Also, we do not want to provide users with an MSI, as this will give them extra control over the install (which will lead to greater amounts of support).
I have read that msiexec 3.0 supports an update switch but we are unable to use this as 2.0 is our minimum requirement. Version upgrading via MSI 2.0 is a major concern for us.
I agree with you, MSI is much nicer and cleaner from an installer perspective but the extra level of abstraction that a bootstrap exe provides does assist user, most users wouldn’t know what an MSI is.
Any thoughts? Thanks for you time!!
Rian
I need to create 2 installers for the following reasons:
1. MSI for network level deployment via such tools as Microsoft SMS, HP OpenView...
2. EXE for users to locally install.
I have been using Wise to create installation packages but we are moving to WIX. The problem is that WIX will only generate an MSI where Wise created an MSI + a bootstrap EXE. A bootstrap EXE is a requirement as it provides a user friendly GUI that can be branded, allows fluid version upgrades to name a few. Also, we do not want to provide users with an MSI, as this will give them extra control over the install (which will lead to greater amounts of support).
I have read that msiexec 3.0 supports an update switch but we are unable to use this as 2.0 is our minimum requirement. Version upgrading via MSI 2.0 is a major concern for us.
I agree with you, MSI is much nicer and cleaner from an installer perspective but the extra level of abstraction that a bootstrap exe provides does assist user, most users wouldn’t know what an MSI is.
Any thoughts? Thanks for you time!!
Rian
Posted by:
h_alaie@hotmail.com
19 years ago
Posted by:
babric
19 years ago
Maybe using some components conditions.
Component table > Condition > Not Installed.
Your components will install only if "Not installed" and (hope) uninstall only if "Not installed", which is, of course, false when you uninstall the product.
Care, I'm not sure about it, try it :-)
EDIT : better : use the permanent option :
Component Table > Attribute > Add "16" to the value written (or write 16 if no values)
EDIT 2 : Tsssss grilled [:D]
Component table > Condition > Not Installed.
Your components will install only if "Not installed" and (hope) uninstall only if "Not installed", which is, of course, false when you uninstall the product.
Care, I'm not sure about it, try it :-)
EDIT : better : use the permanent option :
Component Table > Attribute > Add "16" to the value written (or write 16 if no values)
EDIT 2 : Tsssss grilled [:D]
Posted by:
WiseUser
19 years ago
Put them in their own component and set the "msidbComponentAttributesPermanent" bit in the "Attributes" column of the "Component" table (for that component).
This will register the productcode "00000000-0000-0000-0000-000000000000" as a "client" of the component. Since this product doesn't exist, it will never be removed - therefore the component will always have at least one "client" (thus making it permanent).
This will register the productcode "00000000-0000-0000-0000-000000000000" as a "client" of the component. Since this product doesn't exist, it will never be removed - therefore the component will always have at least one "client" (thus making it permanent).
Posted by:
WiseUser
19 years ago
Here's a VBScript that demonstrates what I said above. The component used below (part of Office) is "permanent" on my PC so it reports product "{00000000-0000-0000-0000-000000000000}" as one of it's clients.
Set oInst = CreateObject("WindowsInstaller.Installer")
Set oProds = oInst.ComponentClients("{C5B60850-9281-44C1-ACA6-034A37641418}")
For i = 0 To oProds.Count - 1
Msgbox oProds.Item(i)
Next
Set oProds = Nothing
set oInst = Nothing
Set oProds = oInst.ComponentClients("{C5B60850-9281-44C1-ACA6-034A37641418}")
For i = 0 To oProds.Count - 1
Msgbox oProds.Item(i)
Next
Set oProds = Nothing
set oInst = Nothing
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.