OK, we've been looking at this, and I have a few more questions.

Our application currently only has one feature, but in the future we plan to add more. Customers will purchase each feature separately, and the application will need to know which features a particular customer has installed. The application will then enable or disable each feature based on this information.

Setupbuilder's subscription key functionality gives the option to install different features based on the information contained within the key, but we don't want the customer to have to reinstall the application if he purchases another component at a later date. We want the customer to be able to download the software when he first buys it, then if he decides a month down the line that he wants to buy another component, we should be able to e-mail him a new subscription key, which he can input and the component he's just bought will be unlocked for him to use without the need to download anything additional.

Ideally, we would like to use the subscription key generated by setupbuilder for this. The key contains information about permitted components, but is there any way that our application can "decode" the key, so it knows which components to allow the user to run?

Just to reiterate, all the components will be installed for every user, the key will be input by the user on installation, and our application will reference this from the registry in order to determine which components to unlock for the user. A new key can be supplied at a later date if new components are purchased. Our application needs to be able to understand the information contained in the subscription key without referencing an online database. IF setupbuilder can do this, great. If not, do you know of any other options we could use?

Thanks.