Instalación
FoxBridge no se instala: se copia. No hay instalador, no hay registro COM y no toca el registro de Windows. Lo que sí hace falta es copiar la carpeta entera y activar la licencia.
FoxBridge va firmado digitalmente
Desde la 1.0.1, FoxBridge.dll, FoxBridgeNE.dll y Nexum.dll (x86 y x64), MiLogica.dll del tutorial y el instalador llevan firma de editor a nombre de Irwin Alfredo Rodriguez Gimenez, con sello de tiempo. Para verlo: clic derecho sobre el fichero → Propiedades → Firmas digitales, o Get-AuthenticodeSignature en PowerShell, que tiene que decir Valid.
- SmartScreen: el certificado es nuevo y Windows puede avisar todavía durante un tiempo. Si sale «Windows protegió tu PC», pulsa Más información: tiene que decir Editor: Irwin Alfredo Rodriguez Gimenez. Si lo dice, Ejecutar de todas formas; si dice «Editor desconocido», ese fichero no es el nuestro: no lo ejecutes.
Antes de instalar
El instalador de FoxBridge va firmado, pero el certificado es nuevo y Windows puede avisarte todavía la primera vez que lo ejecutes. Esto explica qué vas a ver, cómo seguir y cómo comprobar por tu cuenta que el fichero que has descargado es exactamente el que publicamos.
Archivo descargado de internet y SmartScreen
Si al descomprimir o al usar los ficheros Windows se queja, es la «marca de web»: el .zip viene de internet y Windows lo marca como tal. Y si ejecutas el .bat que registra los componentes sin haberlo desbloqueado, puede salirte además SmartScreen («Windows protegió tu PC»): ahí la salida son dos clics, «Más información» y «Ejecutar de todas formas».
- Clic derecho sobre el .zip → Propiedades.
- Abajo, marca Desbloquear y acepta.
- Descomprime después de desbloquear: si lo haces al revés, la marca se queda en cada fichero.
También se puede desde PowerShell: Unblock-File sobre el .zip descargado.
Si tu antivirus lo detiene
Algunos antivirus ponen en cuarentena ficheros recién descargados. Si te pasa, añade una exclusión para la carpeta donde vayas a dejar los ficheros de FoxBridge dentro de tu aplicación (FoxBridge no se instala en una carpeta fija: sus ficheros viven junto a tu proyecto).
Si el antivirus es de la empresa y no puedes tocar sus reglas, pásale el SHA-256 de abajo a quien la administre: es lo que necesita para dar el fichero por bueno.
Comprueba lo que has descargado
Estos son los datos de la versión vigente y del día en que se publicó. El hash se calcula sobre el fichero tal cual sale del portal:
| Fichero | Versión | Publicada | Tamaño | SHA-256 |
|---|---|---|---|---|
FoxBridge-1.0.1.zip | 1.0.1 | 15 sept 2026 | 7.6 MB | A37C09B7ACEA26343107D51B015E4A60BE8AA0344BC6B7665C2ADF4CBE59DF1D |
Para comprobarlo, abre PowerShell en la carpeta de descargas y ejecuta:
Get-FileHash -Algorithm SHA256 "$HOME\Downloads\FoxBridge-1.0.1.zip"Si el valor que sale coincide con el de la tabla, el fichero es el nuestro y está íntegro. Si no coincide, no lo ejecutes: vuelve a descargarlo y, si sigue sin coincidir, escríbenos a soporte@irwinrodriguez.dev.
Los hashes se vuelven a medir en cada versión publicada. Si has descargado una versión anterior, su hash no tiene por qué coincidir con el de esta tabla.
1. Copiar los ficheros
Del paquete, copia FoxBridge.prg y la subcarpeta de la arquitectura a tu proyecto, conservando la estructura:
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 x64Los cinco ficheros de x86\ hacen falta. FoxBridgeNE.dll es la puerta de entrada, pero es FoxBridge.dll quien tiene la lógica, Nexum.dll quien valida la licencia y los dos .json los que le dicen al runtime de .NET qué cargar. Y tienen que ir debajo de la carpeta del .prg, en x86\: ahí es donde los busca. Copiar solo la DLL «al lado del .prg» da «FoxBridge: FoxBridgeNE.dll not found».
x86\. La carpeta x64\ solo entra en juego con VFP Advanced de 64 bits. FoxBridge.prg mira la arquitectura del proceso y elige sola; puedes llevarte las dos carpetas y olvidarte. 2. Comprobar el runtime de .NET
FoxBridge necesita el runtime de .NET 8 o superior en la arquitectura del proceso: con VFP 9, el de x86. Y eso no lo dice dotnet --version, que enseña el SDK y casi siempre el de 64 bits. Lo que hay que mirar es la lista de runtimes:
dotnet --list-runtimes
REM Busca una linea Microsoft.NETCore.App 8.x (o superior) cuya ruta
REM sea la de 32 bits:
REM C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.AppSi no aparece, instala el .NET Desktop Runtime x86 (8 o superior) desde https://dot.net. Con el runtime equivocado, la inicialización falla con un HRESULT y el mensaje te dice qué arquitectura esperaba.
3. Inicializar y activar
Dos líneas al arrancar tu aplicación. La segunda no es opcional: sin Activate() no funciona nada, ni en el IDE ni en el EXE. Cualquier llamada sin activar responde «FoxBridge is not activated».
LOCAL loBridge, lcClave
* Opcion A: FoxBridge.prg en el mismo directorio
loBridge = NEWOBJECT("FoxBridge", "FoxBridge.prg")
* Opcion B: con la ruta completa
* loBridge = NEWOBJECT("FoxBridge", "C:\MiApp\libs\FoxBridge.prg")
* Opcion C: con SET PROCEDURE TO, una sola vez al inicio
* SET PROCEDURE TO "C:\MiApp\libs\FoxBridge.prg" ADDITIVE
* loBridge = NEWOBJECT("FoxBridge")
* La clave es el JWT de tu licencia. Activate() devuelve .F. si no vale
* y deja el motivo en GetLastError(); no lanza un ERROR de VFP.
lcClave = MiSistema_ObtenerLicencia()
IF !loBridge.Activate(lcClave)
MESSAGEBOX("Licencia de FoxBridge no valida: " + ;
loBridge.GetLastError(), 16, "FoxBridge")
RETURN .F.
ENDIFStringBuilder. Guarda el JWT donde guardes tus secretos y pásaselo a Activate(); FoxBridge no lo lee de ningún fichero por su cuenta. 4. Comprobar que ha cargado
Con el bridge ya activado, cualquiera de estas dos líneas te lo confirma:
? loBridge.Version()
&& FoxBridge Runtime 1.0.0 / Core ...
? loBridge.TypeExists("System.Text.StringBuilder")
&& .T.Siguiente: Primeros pasos ->