Single WSI , 32 and 64 bit MSI - How to detect?
Hi,
I've been battling with this issue for a good while now. Here's whats going on, I have a single WSI (Wise Installation Studio 7 being used) The WSI creates the 2 MSI's, 32 bit and 64 bit, each with their respective components.
So, how do I stop the 32 bit MSI being installed on the 64 bit machines? Given that I only have a single WSI project file.
Note. Preventing a 64 bit MSI on 32 bit is automatic, but not visa-versa.
I know the answer lies in either MSIx64 or VersionNT64 properties, but I dont know how to ask the seemingly simple question of:
IF I am a 32 bit MSI running on a 64 bit machine THEN end!!!
This code must reside within the single WSI file therefore it should not conflict with the x64 release.
If anyone has any suggestions it would be of great help!
Paul
I've been battling with this issue for a good while now. Here's whats going on, I have a single WSI (Wise Installation Studio 7 being used) The WSI creates the 2 MSI's, 32 bit and 64 bit, each with their respective components.
So, how do I stop the 32 bit MSI being installed on the 64 bit machines? Given that I only have a single WSI project file.
Note. Preventing a 64 bit MSI on 32 bit is automatic, but not visa-versa.
I know the answer lies in either MSIx64 or VersionNT64 properties, but I dont know how to ask the seemingly simple question of:
IF I am a 32 bit MSI running on a 64 bit machine THEN end!!!
This code must reside within the single WSI file therefore it should not conflict with the x64 release.
If anyone has any suggestions it would be of great help!
Paul
0 Comments
[ + ] Show comments
Answers (19)
Please log in to answer
Posted by:
cygan
14 years ago
Posted by:
cygan
14 years ago
Posted by:
AngelD
14 years ago
Posted by:
HotSpot
14 years ago
Cygan, just for clarification... Wise allows you to build multiple releases, so in my case I have a single WSI project file that builds both a 32bit MSI and 64bit MSI.
AngelID, thanks for the info, as you probably will know if I were to add this launch condition to the WSI it would apply to both 32 and 64 bit releases. As this software is integrated into a build server I will need to run the initial compilation to build the releases and then inject this "LaunchCondition" only into the 32 bit MSI.
Automation of all processes is required as we do at least 2 builds a day.
This leads me on to another question....
How can I add a "LaunchCondition" of "VersionNT64" into the table of the MSI via a script?
Thanks for your help so far!
AngelID, thanks for the info, as you probably will know if I were to add this launch condition to the WSI it would apply to both 32 and 64 bit releases. As this software is integrated into a build server I will need to run the initial compilation to build the releases and then inject this "LaunchCondition" only into the 32 bit MSI.
Automation of all processes is required as we do at least 2 builds a day.
This leads me on to another question....
How can I add a "LaunchCondition" of "VersionNT64" into the table of the MSI via a script?
Thanks for your help so far!
Posted by:
anonymous_9363
14 years ago
One, you can use the condition in both MSIs since it will be True for one and False for the other.
Two, get hold of the Windows Installer SDK (I think it may only be available as part of the much larger Platform SDK these days...) In there will be a number of sample scripts which should you how to create the WindowsInstaller.Installer object, how to open the MSI database, access tables and query/update the tables.
Two, get hold of the Windows Installer SDK (I think it may only be available as part of the much larger Platform SDK these days...) In there will be a number of sample scripts which should you how to create the WindowsInstaller.Installer object, how to open the MSI database, access tables and query/update the tables.
Posted by:
HotSpot
14 years ago
Posted by:
AngelD
14 years ago
Posted by:
HotSpot
14 years ago
Thanks for all you pointers, if anyone else is working with a similar issue where no manual intervention can be performed then here's some code to add to your build scripts to remove LaunchConditions from an MSI after it has been compiled.
'Code to remove all launch conditions from x64 MSI
Const msiOpenDatabaseModeTransact = 1
Dim installer
Dim db
Dim view
Set installer = CreateObject("WindowsInstaller.Installer")
Set db = installer.OpenDatabase("Agent_x64.msi", msiOpenDatabaseModeTransact)
Set view = db.OpenView ("DELETE FROM LaunchCondition")
view.Execute
view.close
Set view = nothing
db.commit
Set db = nothing
Posted by:
razorfish228
13 years ago
OK, I'm confused on how to do this. Here's my scenerio: I have a 64 bit MSI and a 32bit MSI and I want to detect if the machines is a 64 or 32 bit and than if its a 32 bit for example, I don't want it to run and exit quietly. How do you do this in WISE? Can someone point me for an example of how to create either a launch condition and I do NOT want any message popping up, I just want it to exit silently.
Posted by:
razorfish228
13 years ago
OK, here's what I figured out.
In Wise, I go into launch condition and than I add:
(Not VersionNT-500) And (Not VersionNT=501) And (Not VersionNT=502) And (Not VersionNT=600) And (Not VersionNT=601 And Not (MsiNTProductType=1)))
Than you execute the MSI with a /qb-
This makes the MSI ONLY run on Windows7 64bit and it will be silent. If you run it say on XP, it will launch but close Silently.
In Wise, I go into launch condition and than I add:
(Not VersionNT-500) And (Not VersionNT=501) And (Not VersionNT=502) And (Not VersionNT=600) And (Not VersionNT=601 And Not (MsiNTProductType=1)))
Than you execute the MSI with a /qb-
This makes the MSI ONLY run on Windows7 64bit and it will be silent. If you run it say on XP, it will launch but close Silently.
Posted by:
anonymous_9363
13 years ago
Posted by:
razorfish228
13 years ago
Posted by:
anonymous_9363
13 years ago
Posted by:
razorfish228
13 years ago
Posted by:
Arminius
13 years ago
Posted by:
spirosl
13 years ago
HotSpot/VBScab - Thanks for the heads up on the VersionNT64 property. I've just read the property on the MSDN site (ref: http://msdn.microsoft.com/en-us/library/windows/desktop/aa372497(v=vs.85).aspx) and that it requires WI 4.0+. This won't matter for deployments under Windows 7 in my current situation (as we are going through a migration project - aren't we all!) but it's something for me to take into account when packaging for our current Windows XP environment which is currently utilising WI 3.1. I would usually script the detection in a VB Script and then if all conditions were met; to install the MSI with any associated transforms , etc).
Posted by:
rajend07
13 years ago
Posted by:
spartacus
13 years ago
ORIGINAL: rajend07
i have a feature1,feature2 in fea1 shortcut is available and fea2 as keypath is available in keypath is missing selfheal go or not
Sorry, but without sounding disrespectful, you've lost me (and possibly many others) on this one.
A starting point might be to post a fresh base note rather than adding to an existing (and unrelated) thread. Even then, you will need to add much more information about the issue you are facing to stand a chance of getting help here.
Spartacus
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.