cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
herbie68
Level 4

Problem adding extra files to installed programm using license keys with Basic MSI Pr

Hello,

We have a product that is setup with modules.

(like Office where you have one product but it contains a lot of other products).

Every combination of modules has its own license key

for example
Module License key
Default 12345
Default + module 1 23456
Default + module 2 34567
Default + module 1 + 2 45678

An so on

So depending on the entered license key the corresponding components wil be installed.

Believe it or not, this works, until..... 🙂

We want to run the setup again, oure custumor has Default + module 1 and now he added module 2 to his license and so he got a new license key voor Default + module 1 + module 2.

I re-run the setup, first I have to chose wether to edit, repair ore uninstall my product. (I don't realy want this screen but if it works it ok)

I want to edit my previus installation, I get the screen where i have to enter my license key so I enter the new key (I also cheched if the right returncode was given after entering the Lincese key and this is ok) but then Installshield does not add the new files, it does a lot but ends up doing nothing 😞 .

It seems the only things it does is overwrite (if neccesary) the already existing files on the system, the newfiles which come with the new license key are completely ignored. :confused:

How can i do this right that I can rerun an MSI instalshield and add (or remove) modules based on a license key.

What oure customers has to do now is uninstall the softwrae and reinstall it using the new license key.But if he chnaged some of the files (which he is allowed to do) those files are uninstalled to.

Can anyone help me with this one?

Regards
Herbert
Labels (1)
0 Kudos
(4) Replies
MichaelU
Level 12 Flexeran
Level 12 Flexeran

How do you have this structured internally? Do you have multiple features, each of which is chosen for installation or not by the license key entered, or do you have conditions on individual components? If components, this is going to be a pain, as conditions are generally not re-evaluated during maintenance operations. There is a per-component option to re-evaluate them, but I'm not sure it's a good match for this scenario.

If you've got this split by feature, how do you select which features get installed--is it by feature conditions, or by judicious use of the ADDLOCAL property, AddLocal control events, or MSI API in a custom action? Feature conditions are not evaluated after a first time install, so you'll need to look into the other options.
0 Kudos
herbie68
Level 4

Every feauture is a module with a condition, the feautures are build up with one or more components with the same conditions as the features. Zo I use both conditions on Components and Features, and both don't work you say after a first time installation.

In my Installshield after the welcome, user has to enter the license key so I know from the beginning the features that has to be installed. I check the license key with a .net DLL in a custom action witch returns a resultcode that I use in my conditions.

Firts I wanted to use the list view with al available modules, and the ones that where not in the license should be disabled and not selectable, but i couldt not realise this, so I used the conditions.

I was happy first because on first time installation it workt perfectly, but as you say youreself those conditions are ignored the following time the setup runs.

Do you have a better Idea how i can do this? What method kan I use to make sure only those files are copied to the workstation the user has payed for.
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

This isn't an easy thing to accomplish. You'll need to modify the feature states with custom actions that call into the Windows Installer API, and more. At the same time, even after you do all this, an enterprising overeducated user can bypass almost any MSI implementation protection and install any feature he likes, so you'll have to have a similar check in the runtime. Once you've got that, you may find it simpler and more robust to have the installer allow your users to place all the files on the machine, and just have all the license key enforcement at runtime. InstallShield itself tends to follow this lay-it-all-down method.
0 Kudos
herbie68
Level 4

Thank you Michael,

This seems to get complex for a beginner with MSI installshields, I think I have to try i another way, I will start using a Installscript MSI project, perhaps I can solve my problem using Installscript, I am more experienced using Installscript becase the last 3 Years I am building Installscript Installshields, but want to extend my IS's with MSI techniques.
0 Kudos