Instalación
FoxCore se instala con FoxCore.Runtime-Setup-3.4.2.exe: registra el motor COM para toda la máquina, en las dos vistas del registro, y trae una comprobación que dice si de verdad quedó registrado. La licencia no se instala: se activa por código.
FoxCore va firmado digitalmente
Desde la 3.4.2, FoxCore.Runtime.dll, Nexum.dll 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 FoxCore 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.
El aviso de SmartScreen
Si al ejecutarlo sale una ventana azul que dice «Windows protegió tu PC», pulsa «Más información» y mira el editor: tiene que ser Irwin Alfredo Rodriguez Gimenez. El aviso no significa que el fichero tenga nada malo: significa que Windows todavía no ha visto suficientes descargas con este certificado como para reconocerlo.
- Pulsa Más información.
- Pulsa Ejecutar de todas formas.
Antes de dar ese segundo clic, comprueba el hash: es la manera de saber que lo que vas a ejecutar es lo nuestro y no una copia alterada.
Si tu antivirus lo detiene
Algunos antivirus ponen en cuarentena instaladores poco frecuentes. Si te pasa, añade una exclusión para la carpeta de instalación, C:\Program Files (x86)\FoxCore.Runtime, y vuelve a ejecutarlo.
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 |
|---|---|---|---|---|
FoxCore.Runtime-Setup-3.4.2.exe | 3.4.2 | 15 sept 2026 | 2.1 MB | 33BD10DCE4152526E007BCF1EBD2A71EC30706C43C81B476FEF481A39ABCBE2C |
Para comprobarlo, abre PowerShell en la carpeta de descargas y ejecuta:
Get-FileHash -Algorithm SHA256 "$HOME\Downloads\FoxCore.Runtime-Setup-3.4.2.exe"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.
Requisitos
| Componente | Requisito |
|---|---|
| Windows | Windows 10 / 11 |
| .NET Framework | 4.8, y el instalador no sigue si no encuentra el RegAsm de 32 bits |
| Visual FoxPro | VFP 9.0 SP2 registrado como servidor de automatización (VisualFoxpro.Application.9) |
| Permisos | Administrador: el registro va a HKLM, que es lo que ve un servicio o una tarea programada |
| Espacio en disco | 10 MB |
Lo de Visual FoxPro es un aviso, no un impedimento: desde la 3.1.0 el proceso que ejecuta las tareas puede ser otro EXE tuyo registrado como servidor de automatización (propiedad WorkerProgId).
Una nota sobre 32 y 64 bits
Desde 3.4.0 el instalador registra el motor en las dos vistas del registro, y al desinstalar quita las dos. Son dos registros distintos, no uno en dos sitios. La de 32 bits es la obligatoria: es la única que mira vfp9.exe, y registrar sólo en la de 64 deja a VFP diciendo «Clase no registrada» sobre una DLL que sí está registrada, sólo que donde VFP no busca. La de 64 bits es la que ve un proceso de 64 que cree FoxCore (un servicio, una tarea programada, una aplicación .NET x64), y hasta 3.3.0 esos casos fallaban. Si la máquina no tiene Framework64\, el instalador lo dice y sigue.
Instalación paso a paso
1. Descarga el instalador
Desde tu portal de cliente, en el detalle de tu licencia. El nombre lleva la versión: FoxCore.Runtime-Setup-3.4.2.exe.
2. Ejecútalo
Pedirá elevación una vez. Es el motivo de que exista: registrar para toda la máquina.
3. Deja marcada «Comprobar la instalación ahora»
Ejecuta verify.cmd, que crea el objeto desde un proceso de 32 bits: la misma vista del registro que ve VFP. Es la comprobación que vale. Ya no pide ninguna licencia.
Qué hace y dónde
| Qué | Dónde |
|---|---|
| Carpeta de instalación | C:\Program Files (x86)\FoxCore.Runtime, con bin\, demo\, tools\ y la documentación |
| Registro COM | HKLM, las dos vistas: con el RegAsm de 32 bits (Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe) y con el de 64 (Framework64\) si existe, con /codebase y sin /tlb |
| Tu licencia | no se instala: no hay fichero. Se activa por código con Activate() |
| Carpeta demo | queda escribible por Usuarios, para que la demo escriba su informe donde dice y no en el VirtualStore |
| Al desinstalar | se desregistra el motor COM en las dos vistas: quitar sólo una deja un registro huérfano apuntando a una carpeta que ya no existe |
Si ya habías registrado FoxCore sólo para tu usuario
unregister-user.cmd en la carpeta de instalación. verify.cmd avisa mientras siga puesta.Instalación desatendida
Para meterlo en el instalador de tu propia aplicación:
FoxCore.Runtime-Setup-3.4.2.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTARTLa licencia
- Instalar no instala ninguna licencia, y no es un olvido: desde 3.4.0 no hay fichero
.lic. - La licencia es un JWT que le pasas a
Activate()al arrancar tu aplicación. - Se exige siempre, también en el
.exeque tú distribuyes. Hasta 3.3.0 sólo se validaba en el IDE.
Comprobación desde VFP
En la ventana de comandos de Visual FoxPro:
loRt = CREATEOBJECT("FoxCore.Runtime")
? loRt.Ping() && FoxCore.Runtime 3.4.2
? loRt.Activate(lcJwt) && .T. -- tu licencia, como cadena
loRt.Attach(_VFP)
? loRt.State, loRt.IsLicensed && Attached .T.
loRt.Shutdown()Si Ping() falla, es el registro: esta página. Si Activate() devuelve .F., es la licencia: la página de Licencias. No son el mismo problema y no se arreglan igual.
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
| «Clase no registrada» al crear FoxCore.Runtime | No está registrado, o lo está sólo en la vista que no mira quien lo crea | Abre una consola como administrador en la carpeta de instalación y ejecuta register.cmd, que registra las dos vistas y dice el motivo exacto si falla |
| Sigo cargando una versión vieja | Hay una registración por usuario (HKCU) que tapa la de la máquina | Ejecuta unregister-user.cmd SIN elevar |
| «El worker no llegó a arrancar» | No hay VFP 9 registrado como servidor de automatización | Regístralo, o apunta WorkerProgId a otro EXE y compruébalo con ProbeWorker() |
| Activate() devuelve .F. | El JWT está incompleto, es de otro producto o ha caducado | Vuelve a copiarlo entero del portal. El detalle, en la página de Licencias |
| El instalador no arranca y habla de .NET | Falta .NET Framework 4.x (no encuentra el RegAsm de 32 bits) | Instala .NET Framework 4.8 y vuelve a ejecutarlo |
Siguiente: Primeros pasos ->