cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Tobias79
Level 5

SchemaVersion overview

Hi,

am writing a c# app for detection of project file format and installshield version used for an ism project. Therefore I need the SchemaVersions (table InstallShield -> SchemaVersion) for the different versions of installshield.

Here is an initial overview:

766 = IS2008 RTM
768 = IS2009 SP1
770 = IS2010 SP1

Can somebody complete this list ? Is there a difference for the IS versions with and without SP ?

Btw:
ISWiAuto16.ISWiProject ism = new ISWiAuto16.ISWiProject();
ism.OpenProject(msiPackage, false);
System.Console.WriteLine(ism.ProjectSchemaVersion.ToString());


doesn't work on older xml format files (tested with 2008 xml) so the way reading the SchemaVersion seems necessary...


Thanks and best regards
Tobias
Labels (1)
0 Kudos
(2) Replies
Marwan
Level 7

When using the InstallShied Automation Layer as you have in your sample code, you need to use the one corresponding to the ism file you are opening or else I think that file will be upgraded and will contain the schema for that version. You will have to open the ism and look at the property you mention using MSI APIs when the ism is in MSI file format or look up the value in the XML using any XML parser if the ism is in XML format.

As for schema version numbers:
IS11 is 761
IS11.5 is 763
IS12 is 765
IS2008 is 766
IS2009 is 768
IS2010 is 769
IS2010 SP1 is 770
0 Kudos
Tobias79
Level 5

Hi Marvan,

Thank you very much for the information and supplied schema numbers.

Now I understand the logic why it won't work using InstallShied Automation.

Your described approach
Marwan wrote:
You will have to open the ism and look at the property you mention using MSI APIs when the ism is in MSI file format or look up the value in the XML using any XML parser if the ism is in XML format.

is exactly the approach I did. But till now I only had the above mentioned schema numbers and in our company even exist solutions I don't have the corresponding IS version.


Just for information: to query the SchemaVersion from the XML I used the following XPATH expression: [CODE]/msi/table[@name='InstallShield']/row[td='SchemaVersion']/td[2][/CODE]
0 Kudos