IR
irwinrodriguez.dev
Zurück zur Dokumentation

Installation

FoxBridge wird nicht installiert, sondern kopiert. Kein Installer, keine COM-Registrierung und kein Eintrag in der Windows-Registry. Nötig sind aber: den ganzen Ordner kopieren und die Lizenz freischalten.

FoxBridge ist digital signiert

Seit 1.0.1 tragen FoxBridge.dll, FoxBridgeNE.dll und Nexum.dll (x86 und x64), die MiLogica.dll des Tutorials und der Installer eine Herausgebersignatur auf den Namen Irwin Alfredo Rodriguez Gimenez, mit Zeitstempel. So sehen Sie sie: Rechtsklick auf die Datei → Eigenschaften → Digitale Signaturen, oder Get-AuthenticodeSignature in PowerShell, das Valid melden muss.

  • SmartScreen: Das Zertifikat ist neu, und Windows kann noch eine Zeit lang warnen. Erscheint „Der Computer wurde durch Windows geschützt“, klicken Sie auf Weitere Informationen: Dort muss Herausgeber: Irwin Alfredo Rodriguez Gimenez stehen. Steht das dort, Trotzdem ausführen; steht dort „Unbekannter Herausgeber“, ist die Datei nicht von uns: Führen Sie sie nicht aus.

Vor der Installation

Der FoxBridge-Installer ist signiert, aber das Zertifikat ist neu, daher kann Windows beim ersten Start noch warnen. Hier steht, was Sie sehen werden, wie es weitergeht und wie Sie selbst prüfen können, dass die heruntergeladene Datei genau die ist, die wir veröffentlicht haben.

Aus dem Internet heruntergeladene Datei und SmartScreen

Wenn Windows sich beim Entpacken oder Verwenden beschwert, ist das die „Mark of the Web“: die .zip kommt aus dem Internet und Windows kennzeichnet sie entsprechend. Und wenn Sie die .bat zum Registrieren der Komponenten ausführen, ohne sie vorher freizugeben, kann zusätzlich SmartScreen erscheinen („Der Computer wurde durch Windows geschützt“): dort sind es zwei Klicks, „Weitere Informationen“ und „Trotzdem ausführen“.

  1. Rechtsklick auf die .zip → Eigenschaften.
  2. Unten Zulassen ankreuzen und bestätigen.
  3. Erst freigeben, dann entpacken: andersherum bleibt die Markierung an jeder einzelnen Datei.

Es geht auch per PowerShell: Unblock-File auf die heruntergeladene .zip.

Wenn Ihr Virenscanner blockiert

Manche Virenscanner stellen frisch heruntergeladene Dateien unter Quarantäne. Fügen Sie in dem Fall eine Ausnahme für den Ordner hinzu, in dem die FoxBridge-Dateien in Ihrer Anwendung liegen, denn FoxBridge hat keinen festen Installationsordner: seine Dateien liegen neben Ihrem Projekt.

Wenn der Virenscanner der Firma gehört und Sie seine Regeln nicht ändern dürfen, geben Sie den SHA-256 unten an die Administration weiter: mehr braucht sie nicht, um die Datei freizugeben.

Prüfen Sie, was Sie heruntergeladen haben

Das sind die Daten der aktuellen Version und der Tag ihrer Veröffentlichung. Der Hash wird über die Datei berechnet, so wie das Portal sie ausliefert:

DateiVersionVeröffentlichtGrößeSHA-256
FoxBridge-1.0.1.zip 1.0.1 15. Sept. 2026 7.6 MB A37C09B7ACEA26343107D51B015E4A60BE8AA0344BC6B7665C2ADF4CBE59DF1D

Zum Prüfen öffnen Sie PowerShell in Ihrem Download-Ordner und führen aus:

Den SHA-256 der heruntergeladenen Datei berechnen
Get-FileHash -Algorithm SHA256 "$HOME\Downloads\FoxBridge-1.0.1.zip"

Stimmt der Wert mit der Tabelle überein, ist die Datei von uns und unversehrt. Stimmt er nicht, führen Sie sie nicht aus: laden Sie sie erneut herunter, und wenn es dann immer noch nicht passt, schreiben Sie an soporte@irwinrodriguez.dev.

Die Hashes werden bei jeder veröffentlichten Version neu gemessen. Wenn Sie eine ältere Version heruntergeladen haben, muss ihr Hash nicht mit dieser Tabelle übereinstimmen.

1. Dateien kopieren

Kopieren Sie aus dem Paket FoxBridge.prg und den Unterordner der Architektur in Ihr Projekt, unter Beibehaltung der Struktur:

MiApp\
  libs\
    FoxBridge.prg              <- la API que usas desde VFP
    x86\                       <- VFP 9 y VFPA x86
      FoxBridgeNE.dll
      FoxBridge.dll
      Nexum.dll
      FoxBridge.runtimeconfig.json
      FoxBridge.deps.json
    x64\                       <- solo si usas VFP Advanced x64

Alle fünf Dateien in x86\ werden gebraucht. FoxBridgeNE.dll ist der Eingang, aber die Logik steckt in FoxBridge.dll, die Lizenzprüfung in Nexum.dll, und die beiden .json-Dateien sagen der .NET-Laufzeit, was sie laden soll. Und sie müssen unterhalb des Ordners der .prg liegen, in x86\: dort wird gesucht. Nur die DLL „neben die .prg“ zu kopieren ergibt „FoxBridge: FoxBridgeNE.dll not found“.

x86 oder x64: das entscheidet der Prozess, nicht Sie VFP 9 ist 32-bittig und verwendet daher x86\. Der Ordner x64\ kommt nur bei 64-bittigem VFP Advanced ins Spiel. FoxBridge.prg sieht sich die Architektur des Prozesses an und wählt selbst; Sie können beide Ordner mitliefern und es vergessen.

2. Die .NET-Laufzeit prüfen

FoxBridge braucht die Laufzeit von .NET 8 oder neuer in der Architektur des Prozesses: bei VFP 9 also x86. Und das sagt dotnet --version nicht: es zeigt das SDK, und fast immer das 64-bittige. Gefragt ist die Liste der Laufzeiten:

dotnet --list-runtimes

REM Suchen Sie eine Zeile Microsoft.NETCore.App 8.x (oder neuer),
REM deren Pfad der 32-Bit-Pfad ist:
REM   C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App

Fehlt sie, installieren Sie die .NET Desktop Runtime x86 (8 oder neuer) von https://dot.net. Mit der falschen Laufzeit scheitert die Initialisierung mit einem HRESULT, und die Meldung nennt die erwartete Architektur.

3. Initialisieren und freischalten

Zwei Zeilen beim Start Ihrer Anwendung. Die zweite ist nicht optional: ohne Activate() funktioniert nichts, weder in der IDE noch in der EXE. Jeder Aufruf ohne Freischaltung antwortet mit „FoxBridge is not activated“.

Bridge erzeugen und Lizenz beim Start freischalten
LOCAL loBridge, lcSchluessel

* Variante A: FoxBridge.prg im selben Verzeichnis
loBridge = NEWOBJECT("FoxBridge", "FoxBridge.prg")

* Variante B: mit vollstaendigem Pfad
* loBridge = NEWOBJECT("FoxBridge", "C:\MeineApp\libs\FoxBridge.prg")

* Variante C: mit SET PROCEDURE TO, einmal beim Start
* SET PROCEDURE TO "C:\MeineApp\libs\FoxBridge.prg" ADDITIVE
* loBridge = NEWOBJECT("FoxBridge")

* Der Schluessel ist das JWT Ihrer Lizenz. Activate() liefert .F., wenn
* es nicht gueltig ist, und hinterlegt den Grund in GetLastError(); es
* loest keinen VFP-ERROR aus.
lcSchluessel = MeinSystem_LizenzHolen()
IF !loBridge.Activate(lcSchluessel)
    MESSAGEBOX("FoxBridge-Lizenz ungueltig: " + ;
               loBridge.GetLastError(), 16, "FoxBridge")
    RETURN .F.
ENDIF
Die Lizenz wird immer verlangt In der IDE und in der kompilierten EXE gleichermaßen. Die Prüfung steht am Anfang aller fünfzig Einstiegspunkte des Motors, ohne Freischaltung entsteht also nicht einmal ein StringBuilder. Bewahren Sie das JWT dort auf, wo Sie Ihre Geheimnisse aufbewahren, und übergeben Sie es an Activate(); FoxBridge liest es von sich aus aus keiner Datei.

4. Prüfen, ob geladen wurde

Bei freigeschaltetem Bridge bestätigt Ihnen das jede dieser beiden Zeilen:

Prüfen, ob FoxBridge geladen wurde
? loBridge.Version()
&& FoxBridge Runtime 1.0.0 / Core ...

? loBridge.TypeExists("System.Text.StringBuilder")
&& .T.

Weiter: Erste Schritte ->