views:

359

answers:

1

I am very new to InstallShield and have inherited a InstallScript project. I have mostly figured out my way around and fixed most of the problems. However, I wish to build this project automatically on our build server with each build of our product. I have this working fine. For some reason, though, I cannot get the version number to increase.

I am using the command:

IsCmdBld.exe -P <.ism location>
-L <some_path_variable>=<some_value>
-L <some_path_variable2>=<some_value2>

This works.

However, adding -y 1.2.3, -y "1.2.3", -z Version=1.2.3, -z Version="1.2.3", -z "Version=1.2.3", -z ProductVersion=1.2.3, -z ProductVersion="1.2.3", or -z "ProductVersion=1.2.3". does not work.

When I say that it doesn't work, I mean that using the resulting installer does not attempt to do an upgrade like it would if I manually increased the Version string in the Product Properties table from inside InstallShield.

Is there something I am missing? I know I am not providing much to go on, just hoping someone has come across this problem before. Also, using the -c COMP switch does not work.

Any thoughts appreciated.

+3  A: 

I believe IsCmdBld only supports passing ProductVersion properties for MSI project types now InstallScript project types. I believe you need to do something like this prior to calling IsCmdBld

set project = CreateObject("ISWiAuto15.ISWiProject") project.OpenProject "C:\test.ism" project.ProductVersion = "2.0.0" project.CloseProject set project = nothing

Alternatively you can save your project type in XML format and use an XPath / XPoke to update the ProductVersion in the Property table. The syntax is a little scary because of the DTD but it can be done.

Christopher Painter
Yeah, someone in the Acresso forums sent me down this route as well. I am doing what you suggest except that I call project.SaveProject before project.CloseProject, and I am doing it in c#. However, the save call throws a COMException. =/ I'll figure what is causing this exception eventually.
Brett Widmeier
Check if you're doing project.OpenProject "c:\test.ism", false so that you can modify the project.
Alonso
@Alonso Yeah, I was. The issue was that the original author didn't use IS 2009. So, opening up the project in IS 2009 and choosing Save As.. then changing a couple pointers resolved the problem.
Brett Widmeier
Ahhh. That works so much better than trying to use the command line builder. Thanks.
Scott P

related questions