cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
wilkinse
Level 3

Can multiple versions of ISWiAutomation be registered on the same machine??

Hi,

We run automation scripts to update versions numbers, product / package code, add components and other updates within the .ism files. This all works great but one issue I see if depending on what version of .ism file I am trying to update I need to register that particular IS .dll. even though I have all the IS versions installed on the same machine.

So if I am updating a Spring2012 ism file I need to run this command prior to running my automation script.
regsvr32.exe "c:\Program Files (x86)\InstallShield\2012Spring\System\ISWiAutomation19.dll"

If I then want to update a 2014 ism file I would then have to run this command first:
regsvr32.exe "c:\Program Files (x86)\InstallShield\2014\System\ISWiAutomation21.dll"

Can, and if so how, do I get different versions registered on the same machine?

Thanks,
Erik
Labels (1)
0 Kudos
(3) Replies
hidenori
Level 17

Each version of InstallShield automation interface has unique COM information. You can instantiate a copy of ISWiProject by an IS version differently with the following VB and VBScript syntax:

2012 Spring:
Set pISWiProject19 = CreateObject("IswiAuto19.ISWiProject")


2014:
Set  pISWiProject21 = CreateObject("IswiAuto21.ISWiProject")
0 Kudos
wilkinse
Level 3

This is a chunk of the switch statement in the powershell script I use but I still need to run the commands shown before to register the correct version first.


switch($schema){
'776' { #776 = IS2015
LogWrite "Schema is $schema using IS2015: setting ISwiAuto22.ISWiProject"
$m_ISWiProj = new-object -comobject IswiAuto22.ISWiProject
;break
}
'775' { #775 = IS2014
LogWrite "Schema is $schema using IS2014: setting ISwiAuto21.ISWiProject"
$m_ISWiProj = new-object -comobject IswiAuto21.ISWiProject
;break
}
'774' { #774 = IS2013
LogWrite "Schema is $schema using IS2013: setting ISwiAuto20.ISWiProject"
$m_ISWiProj = new-object -comobject IswiAuto20.ISWiProject
;break
}
'773' { #773 = IS2012Spring
LogWrite "Schema is $schema using IS2012Spring: setting ISwiAuto19.ISWiProject"
$m_ISWiProj = new-object -comobject IswiAuto19.ISWiProject
;break
}
'772' { #772 = IS2012
LogWrite "Schema is $schema using IS2012: setting ISwiAuto18.ISWiProject"
$m_ISWiProj = new-object -comobject IswiAuto18.ISWiProject
;break
}
}
0 Kudos
chad_petersen
Level 9

For me, installing the Stand-alone build itself - running the installer for each one - registered the various automation interfaces in their respective folders and they did not interfere with one another. Then in our script we just instantiate whichever object we want - by its unique name - and away it goes. I wonder why you would have to keep registering the same items each time? I guess it can't hurt, but I'm curious why that would be necessary?

Chad
0 Kudos