Lizenzierung
Die FoxCore-Lizenz ist ein JWT und wird per Code aktiviert: Sie übergeben ihn beim Start Ihrer Anwendung an Activate(). Es gibt keine Datei, die irgendwohin kopiert werden müsste.
Die Lizenz aktivieren
Das ist alles, und es ist dasselbe in der IDE wie in der .exe, die Sie ausliefern:
LOCAL loRt, lcJwt
* Tu licencia de FoxCore, tal cual sale del portal. Una sola linea.
lcJwt = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9." + ;
"eyJzdWIiOiJGb3hDb3JlIiwia2luZCI6IkRldmVsb3BlciIsLi4ufQ." + ;
"TU-FIRMA-AQUI"
loRt = CREATEOBJECT("FoxCore.Runtime")
IF !loRt.Activate(lcJwt)
MESSAGEBOX("La licencia de FoxCore no es valida.", 16, "FoxCore")
RETURN
ENDIF
loRt.Attach(_VFP)
? loRt.IsLicensed && .T.Activate() bekommt den Inhalt des JWT, nie einen Pfad. Üblich ist, ihn als Konstante im Code zu halten, denn er reist in der ausführbaren Datei mit, die Sie Ihrem Kunden geben.Woher der JWT kommt
- Melden Sie sich im Kundenportal an und öffnen Sie den Bereich Lizenzen.
- Suchen Sie Ihre FoxCore-Lizenz. Wenn Sie die klassische Engine schon hatten, ist es dieselbe: Sie müssen nichts Neues kaufen.
- Kopieren Sie die ganze Zeichenkette. Sie ist lang, besteht aus drei durch Punkte getrennten Blöcken und enthält keine Zeilenumbrüche.
- Fügen Sie sie als Konstante in Ihren Code ein und übergeben Sie sie beim Start an
Activate(). - Prüfen Sie, dass es geklappt hat:
Activate()liefert.T., undIsLicensedebenfalls.
Was sich in 3.4.0 geändert hat
Bis 3.3.0 wurde die Lizenz nur geprüft, wenn der Host die Visual-FoxPro-IDE war (_VFP.StartMode = 0); zur Laufzeit war das Produkt royalty-free. Seit 3.4.0 wird sie auch in der .exe oder .dll verlangt, die Sie ausliefern.
Activate() in den Start Ihrer Anwendung aufnehmen. An der COM-Oberfläche und am Verhalten der Engine ändert sich sonst nichts.Das Modell
| Regel | Was das heißt |
|---|---|
| 299 €, einmalige Zahlung | Ein einziger Preis. Es gibt keine Stufen für 1, 4 oder 8 Plätze mehr: sie wurden am 12.09.2026 zurückgezogen. Früher ausgestellte Lizenzen gelten unverändert weiter. |
| Eine Lizenz pro Unternehmen | Plätze werden nicht gezählt, Installationen auch nicht. Derselbe JWT gilt auf jedem Rechner, auf dem Ihre Anwendung läuft, und auf allen Rechnern Ihres Teams. |
| Offline-Prüfung | Kein Netzwerkaufruf. Signatur, Produkt und Ablauf werden geprüft, und der öffentliche Schlüssel steckt in Nexum.dll. |
| Ewig | Die gekaufte Version läuft für immer. Die Wartung gibt Zugang zu neuen Versionen; läuft sie aus, funktioniert die vorhandene weiter. |
| Geteilt mit der klassischen Engine | Das Produkt ist FoxCore, dasselbe wie WinFx.FoxCore. Eine Lizenz deckt beide Linien ab. |
Was ohne Lizenz passiert
Das hängt davon ab, was genau fehlt: es sind zwei verschiedene Fälle. Rufen Sie Activate() mit einem ungültigen oder abgelaufenen JWT auf, liefert es .F., der Lebenszyklus läuft weiter (Attach, Ping, Shutdown) und Tasks werden als Failed geboren und sagen warum: es gibt keinen stillen Notbetrieb, und nichts bricht mittendrin ab, der Task wird beim Einreihen abgewiesen. Rufen Sie Activate() gar nicht auf, kommen Sie erst gar nicht zu den Tasks: Attach() wirft sofort RUNTIME_BAD_STATE. Das ist Absicht: einen Schritt des Lebenszyklus zu überspringen ist Ihr Fehler und kein Urteil über Ihre Lizenz, und es wird in der Zeile gesagt, die ihn verursacht hat, nicht eine halbe Stunde später.
lcId = loRt.RunScript("RETURN 1", "una tarea")
? loRt.GetState(lcId) && Failed
? loRt.GetError(lcId)Der Fehlercode ist RUNTIME_LICENSE_INVALID, und GetError() liefert:
FoxCore.Runtime: no hay una licencia valida para el producto 'FoxCore', asi que la tarea no se ejecuta. Activala por codigo al arrancar: loRt.Activate(<tu JWT>). Se consigue en https://irwinrodriguez.dev/products/foxcoreVon der IDE aus prüfen
Vier Zeilen im Befehlsfenster von VFP:
loRt = CREATEOBJECT("FoxCore.Runtime")
? loRt.Ping() && FoxCore.Runtime 3.4.2
? loRt.Activate(lcJwt) && .T.
? loRt.IsLicensed && .T.Was es nicht mehr gibt
Wenn Sie von der Dokumentation zu 3.3.0 oder früher kommen: das stimmt nicht mehr:
- Es gibt keine Datei
foxcore.lic, die nachbin\oder sonstwohin kopiert werden müsste. - Das Setup hat keine Lizenzseite mehr, und die unbeaufsichtigte Installation nimmt
/LIC=nicht mehr an. verify.cmdsucht keine Lizenz mehr: es prüft die Registrierung, und das ist die Aufgabe einer Installation.- Das Produkt ist zur Laufzeit nicht mehr royalty-free.
foxcore.lic von der Platte. Das ist eine Bequemlichkeit von ihnen: es sind einzelne .prg, die Sie von Hand aus der IDE starten, und sie müssen den JWT irgendwoher nehmen. In Ihrer Anwendung steht er im Code.Wenn etwas nicht stimmt
| Symptom | Ursache | Lösung |
|---|---|---|
Activate() liefert .F. | Der JWT ist unvollständig; meistens mit einem Zeilenumbruch in der Mitte kopiert, oder der letzte Block fehlt | Kopieren Sie ihn noch einmal vollständig aus dem Portal. Drei Blöcke, durch Punkte getrennt, ohne Leerzeichen |
Activate() liefert .F. bei vollständigem JWT | Es ist die Lizenz eines anderen Produkts, oder es ist eine bereits abgelaufene Testlizenz | Prüfen Sie im Portal, dass es die von FoxCore ist und dass sie gültig ist |
Tasks werden Failed und sprechen von der Lizenz | Die Engine startete mit einem Activate(), das .F. lieferte | Prüfen Sie den Rückgabewert von Activate(), statt es aufzurufen und weiterzumachen |
Attach() wirft RUNTIME_BAD_STATE | Activate() wurde nie aufgerufen, oder nach Attach() | Activate() kommt immer zuerst. Mit dem JWT als Zeichenkette: es gibt keine Datei zu lesen |
| Lief unter 3.3.0 und nach dem Update nicht mehr | Das ist die Änderung von 3.4.0: die Lizenz wird auch außerhalb der IDE verlangt | Nehmen Sie Activate() in den Start Ihrer Anwendung auf |
Weiter: Erste Schritte ->