It does make sense Wyatt, and that is how I have configured things at the moment. Is there actually any difference between a different version and a different product within LimeLM?The current plan is just to have a completely new set of product keys, and provide a new one on upgrade when the user supplies a v1 key. I added support for grabbing the v1 key in v2 of the app by explicitly loading the old .DAT file, which worked well (this is so the link to the purchase page can be populated with the v1 key and populate the required field on the purchase page). The v1 license would then be upgraded with a new "feature" that links the v2 key and means that the v1 license cannot be used to buy another reduced price upgrade.
No real problems with this approach, but the advantages I can see for actually just updating the v1 license, and using the v2 licensing just to drive a new trial period:
1/ I have quite a few licenses that have been sold to retailers. It would be easier just to upgrade their unsold licenses with a new feature than supply new (OK - it probably wouldn't be much easier, but maybe a little).2/ I'm probably over thinking this, but it would be nice to prevent users from giving away (or selling) their old v1 licenses. I could, I suppose, just deactivate the v1 license after an upgrade but I want to let users switch between versions for a while, as there are a lot of differences. Nicer perhaps to have a single license covering it.
Any reasons why this plan wouldn't work? You say that product keys are not transferable between versions, which I understand. However in this model, the v2 is *only* used for a new verified trial for existing users who would almost certainly used up their v1 trial. Essentially what I want is for v1 users to be able to download and test v2 on a trial, and this seems like a reasonable way of doing it..
so:
1. On startup, check the v1 license exists, is activated and has the v2 feature.2. If yes, go ahead and run the app.3. If not, run a use trial using v2 license information. If within the trial, run in trial mode. If not, put up the usual end of trial window.