I am developing a C# Win Forms application that needs to be installed on a client machine(Windows XP / Windows 7).
The problem i have is , i need to limit the number of installations Per Installation package to 2(or some number).
Is there any way to achieve this through Install Shield or by any other means?
Is embedding the key in the file name , a good practice?
Awaiting for the answer.
Thanks in Advance,
Vijay
You would need to set up a central server to manage the installations and assign keys to users, tracking key usage at the central server. The binary installation itself cannot, to my knowledge, keep track of how many times it has been installed.
This must be impossible as the user may always make a copy of the installation package before running it. A package (like an *.msi file) is just a sequence of bytes, that can be copied...
You can limit it to 2 installations per machine given that you leave some information behind somewhere (like in the registry).
Another alternative is to have a license key (or a key embedded into the installation package) that then is used to activate the software using a central server on the Internet. That is probably you only option.
Another simple solution would be to access the registry and add a new key. When the installation occurs, you would check for the registry key and then check the number. If the key doesn't exist then create it.
This has flaws though, as any knowledgeable user could open the registry (if they have the right permissions on the machine) and then change the registration key's value.