I have a msi with a public property CUSTOMERID. This is the base MSI. When customer logs in to download the MSI, downloaded MSI should have the CUSROMERID set based on the login. Basically I want to create a custom MSI with public property set from a base MSI so that the customer can redistribute it to his users. Can someone help with this.
If you're only creating a few by hand, you can use something like the Orca program from the MSI SDK to edit the Properties table.
If you want to script the action so it can be done hundreds of times or on the fly, using only the SDK tools you may have to do some hefty automation tricks (like creating a patch with just the CUSTOMERID property and merging it into the "master" MSI using MSIDB). (Or commercial packaging tools like InstallShield and Wise can be scripted to do this kind of work.)
On the other hand, I can see reasons for not wanting to do this, and instead preferring to ask the customer for their ID number during the installation as an illegal copy deterrent. (Then again, that can be annoying if the user is also prompted if they try to do a repair or self-healing at a later time, and they don't have the original order info on hand.) But that's your choice, of course!