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

Change product name shown in the Control panel


I have Basic msi project and would like to change the product name shown in the control panel and GUID by using command line parameters.
I found in the documentation that windows installer supports following command line option

msiexec /i A:\Example.msi PROPERTY=VALUE

Hence I tried the following for product name

msiexec /i A:\Example.msi ProductName="my_new_name"

but "my_new_name" is not shown in the Control panel.

Could you please advise how I can vary name shown in the control panel if use the same .msi file?
Thank you in advance.

Best regards, Georgiy
Labels (1)
0 Kudos
(3) Replies
Level 13

What you are asking is a very tricky thing.
First of all, there are two types of properties, private and public. PUBLIC properties are always uppercase, all characters.
A PrivateProperty is either mixed case or lower case.

A user can only specify a PUBLIC property on a command line. MSI does not allow changing Private Properties on the command line.

You may be able to get away with this by creating a new property called "MYPROJECTNAME" and set a default name. Then early in the UI sequence create a custom action that changes the ProjectName property and set a condition so that it only executes if the property MYPROJECTNAME is not empty. This should execute before any of the UI is displayed to the end user. You will want to test this thoroughly as you are trying to circumvent something that is foundational to every package that is built. Make sure you test upgrades, maintenance mode, repair, etc. I suspect that you are getting yourself in trouble by changing the ProductName value from a command line.

From my perspective you should have separate build configurations using the appropriate product name, a unique ProductCode, and if appropriate upgrade code.
0 Kudos
Level 2

Hi There,

I am using Installshield 2012 Premier Edition. I am using deferred CA, which is using sensitive info, like password. Since L*v will log everything, it is printing the Set CA with the parameters being passed.
To give you background I am of course using MsiHiddenProperties and SecureCustomProperties. Also, I am using The HideTarget flag (8192) for the CA. Its hiding (Password) everywhere, except "Ignoring CustomActionData substring".

Kindly, help me overcome this issue.

Thanks in Advance...!!

0 Kudos
Level 5

Thanks DLee. I will try your approach!
0 Kudos