cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
tdeboer
Level 2

4 different versions & serial numbers, 1 release?

I'm trying to figure out the best and easiest way to accomplish this. I have 4 versions of my software and each version has it's own serial number. What I want to do is be able to put them all on 1 CD, and depending on which serial number the user enters, that version gets installed.

Unfortunately, due to the way the software is programmed, I can't do it by features = each version is it's release.

Any help or insight would be appreciated. Thank you.
Labels (1)
0 Kudos
(24) Replies
jjb8297
Level 6

Kelter wrote:
1. Installation information
Set this up with normal info about your company, product. as for product and package codes, you'll start worrying more about these when you release upgrades. Don't forget to do this come next release. The help topic "Major Upgrade vs. Minor Upgrade vs. Small Update " will come in handy as a place to start, anyways.
2. Setup design
Yes, i know you labled 2 "Organizations" but i do just about all this work within the setup design view. Since you came from the 5.5 days, i should point out that your old idea if "Components" and "File Groups" are now loosely interpreted as "Features" and "Components," respectively. Don't let the demotion of "Components" trick you. What the user would see in the CustomSetup dialog if you were to use it (think of it as SdComponentDialog2 from oldschool IS) would be your Feature breakdown (less the invisilbe features, obviously.) In short, the Features are the Customer's view of your product (whether they see them or not) (Forgive my overparenthesization). Features contain Components. Components are your building blocks. They are the designer's view of the installation. At a "getting-started" level, components encapsulate files with the same destinations and installation conditions. It is recommended that you only include one executable per component. See documentation on "Repair" functionality for details. They also allow you to associate reg entries, shortcuts, and other stuff with said files (Like FileGroups on steroids.)

Since it sounds like you don't really need to give the customer any choices (no customSetup dialog) you can rely on component conditions to determine what will be installed and what won't. You should have enough information now to seperate out all the files you install into components. Create Components for all files for all editions. I'd recommend you end the name of each Component with "_" to identify to which edition each Component belongs. Assign a condition to each component referencing the "EDITION" property like I'd indicated 11/15.

You could create 1 feature and assign every component to it if you're not going to use the CustomSetup dialog. Components not assigned to features don't get installed.
3. Appliaction data
If you added files to each component as you created it, you won't need to use this view, except to verify that you didn't screw up setting the targets for any of your components.
4. System Configuration
I set up this info while creating components, too. Add your reg entries and Shortcuts under their respective components. For simple installations. Chances are good that you don't have to worry about the other settings in this section.
5 Servier Configuration
I haven't had to worry about this yet...but i don't install servers
6. Behavior and logic
InstallScript
You'll need to write a function that performs similar functionality to the example i used earlier.

Custom Actions and Sequences
Create an InstallScript (type 65536) CA that calls the function i mentioned above. There's plenty of documentation on how to export an IS CA. Name it "EvaluateLic" In-Script Scheduling should be "Immediate." Don't add it to the sequence, however.


7. User Interface
My recommendayion would be the following sequence of dialogs (which you "chain" together with "NewDialog" Actions assigned to the "Next" and "Back" buttons)
InstallWelcome
LicenseAgreement
CustomerInformation
DestinationFolder
ReadyToInstall
Embellish this where necessary.

Make sure the CustomeInformation Dialog has a field on it for the License Key. In the properties pane for this control, set the "Property" property to LICENSEKEY. In so doing, you are equating the text in this control to a new property called LICENSEKEY. This is the property that the IS code will query, and pass you your validation function.

Go to the behavior view for this dialog. on the "Next" button assign the following events:[CODE]Event |Argument |Condition |
-------------|---------------|----------------|
[EDITION] |0 |1 |
EvaluateLic | |1 |
NewDialog |ReadyToInstall |NOT(EDITION="0")|[/CODE]The first event resets the [EDITION] property for initialization purposes. The second action calls your script function (which should in tern update the EDITION property upon successful validation of the LICENSEKEY property.) If the key validates, then the NewDialog Action will advance the dialog sequence. If not, then nothing will happen. (which is okay, be cause upon failing the GetEdFromLic() function in your script, you'll be popping up a messageBox to instruct the user.)
8. and 9.
I have nothing case-specific to indicate to you here. any further questions should be answerable by the help docs.


So therei's the whole solution layed out for ya. If it is slightly off from your desired behavior, it should still be enough of an example/tutorial that you should be able to figure out the changes.

Good luck, and happy T-Day.




On #6 where you talk about Custom Actions and Sequences. I create the function in the InstallScript section, but I am :confused: by the Custom Action and Sequence section. Sorry.
0 Kudos
Kelter
Level 10

when you use a property reference (like "[EDITION]") as an event, sometimes it seems to ignore it the first time i enter it, but the second time i enter it, it works...:-\ Make sure you include the brackets. I think hitting enter instead of clicking on the next fierld might behave better, but i can't quite put a finger on the corelation. Give it another shot. Using a Property reference as an event and the value you want to assign to the property as an argument is valid.

there are several ways to add stuff to the sequence...if you look in the Sequences view, InstallWelcome is there already, by default. It even has a condition attached to it (like "NOT(Installed) or something of the sort. ) Setting actions for the "Next" buttons on each of your dialogs will create the chain within a single dialog sequence. (Just try it, you'll see.) Remember to set the "Back" buttons' events, or things will misbehave!

I'd also recommend you take a look at this
http://www.installsite.org/pages/en/isnews/200108/index.htm
article. If you've been away from installation technology for a while, you'll need this info, or you'll be really confused.
0 Kudos
jjb8297
Level 6

Thanks dude, enjoy your time off, I making some head way on this. 🙂
0 Kudos
jjb8297
Level 6

Just wanted to say thank you for your help on this. After going through everything over the weekend, and working through your psuedocode example and reading through the help file on a few things that didn't make sense the way you said it was suppose to work.

I finally got the install to do the following
And the files will be installed based on the licence key entered in by the user.

App seems to work correctly after the install, so thanks again for your help.:)
0 Kudos