IR
irwinrodriguez.dev
Back to docs

Installation

FoxCore is installed with FoxCore.Runtime-Setup-3.4.2.exe: it registers the COM engine machine-wide, in both views of the registry, and ships a check that tells you whether it really got registered. The license is not installed: it is activated in code.

FoxCore is digitally signed

Since 3.4.2, FoxCore.Runtime.dll, Nexum.dll and the installer carry a publisher signature in the name of Irwin Alfredo Rodriguez Gimenez, with a timestamp. To see it: right-click the file → Properties → Digital Signatures, or run Get-AuthenticodeSignature in PowerShell, which must say Valid.

  • SmartScreen: the certificate is new and Windows may still warn for a while. If “Windows protected your PC” appears, click More info: it must say Publisher: Irwin Alfredo Rodriguez Gimenez. If it does, Run anyway; if it says “Unknown publisher”, that file is not ours: do not run it.

Before you install

The FoxCore installer is signed, but the certificate is new and Windows may still warn you the first time you run it. Here is what you will see, how to continue, and how to check for yourself that the file you downloaded is exactly the one we published.

The SmartScreen warning

If a blue window saying “Windows protected your PC” appears when you run it, click “More info” and look at the publisher: it must be Irwin Alfredo Rodriguez Gimenez. The warning does not mean there is anything wrong with the file: it means Windows has not yet seen enough downloads with this certificate to recognize it.

  1. Click More info.
  2. Click Run anyway.

Before that second click, check the hash: that is how you know what you are about to run is ours and not an altered copy.

If your antivirus stops it

Some antivirus products quarantine installers they rarely see. If that happens, add an exclusion for the installation folder, C:\Program Files (x86)\FoxCore.Runtime, and run it again.

If the antivirus belongs to your company and you cannot change its rules, give the SHA-256 below to whoever administers it: that is what they need to clear the file.

Check what you downloaded

These are the details of the current version and the day it was published. The hash is computed on the file exactly as the portal serves it:

FileVersionPublishedSizeSHA-256
FoxCore.Runtime-Setup-3.4.2.exe 3.4.2 15 Sept 2026 2.1 MB 33BD10DCE4152526E007BCF1EBD2A71EC30706C43C81B476FEF481A39ABCBE2C

To check it, open PowerShell in your downloads folder and run:

Computing the SHA-256 of the downloaded file
Get-FileHash -Algorithm SHA256 "$HOME\Downloads\FoxCore.Runtime-Setup-3.4.2.exe"

If the value matches the table, the file is ours and intact. If it does not match, do not run it: download it again and, if it still does not match, write to soporte@irwinrodriguez.dev.

Hashes are measured again for every published version. If you downloaded an earlier version, its hash will not necessarily match this table.

Requirements

ComponentRequirement
WindowsWindows 10 / 11
.NET Framework4.8, and setup stops if it cannot find the 32-bit RegAsm
Visual FoxProVFP 9.0 SP2 registered as an automation server (VisualFoxpro.Application.9)
PrivilegesAdministrator: the registration goes to HKLM, which is what a service or a scheduled task can see
Disk space10 MB

The Visual FoxPro requirement is a warning, not a blocker: since 3.1.0 the process that runs the tasks can be an EXE of your own registered as an automation server (the WorkerProgId property).

A note about 32 and 64 bits

Since 3.4.0 setup registers the engine in both views of the registry, and uninstalling removes both. They are two separate registrations, not one in two places. The 32-bit one is mandatory: it is the only one vfp9.exe looks at, and registering only in the 64-bit view leaves VFP saying “Class not registered” about a DLL that is registered, only where VFP does not look. The 64-bit one is what a 64-bit process creating FoxCore sees (a service, a scheduled task, an x64 .NET application), and up to 3.3.0 those cases failed. If the machine has no Framework64\, setup says so and carries on.

Step by step

1. Download the installer

From your customer portal, on your license detail page. The file name carries the version: FoxCore.Runtime-Setup-3.4.2.exe.

2. Run it

It asks for elevation once. That is the whole point of it: registering machine-wide.

3. Leave “Verify the installation now” ticked

It runs verify.cmd, which creates the object from a 32-bit process: the same view of the registry VFP sees. That is the check that counts. It no longer asks for any license.

What it does, and where

WhatWhere
Installation folderC:\Program Files (x86)\FoxCore.Runtime, with bin\, demo\, tools\ and the documentation
COM registrationHKLM, both views: with the 32-bit RegAsm (Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe) and with the 64-bit one (Framework64\) if present, with /codebase and without /tlb
Your licenseis not installed: there is no file. It is activated in code with Activate()
The demo folderis left writable by Users, so the demo writes its report where it says and not into the VirtualStore
On uninstallthe COM engine is unregistered in both views: removing only one leaves an orphan registration pointing at a folder that no longer exists

If you had already registered FoxCore for your user only

A per-user (HKCU) registration shadows the machine-wide one: you would keep loading the old version without noticing. Setup tries to remove it and, if it cannot, it says so instead of keeping quiet: it runs elevated, and HKCU there may not be yours. You remove it yourself, without elevation, with unregister-user.cmd in the installation folder. verify.cmd keeps warning you while it is there.

Unattended installation

To bundle it inside your own application's installer:

Silent install from the command line
FoxCore.Runtime-Setup-3.4.2.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART

The license

  1. Installing does not install a license, and that is not an oversight: since 3.4.0 there is no .lic file.
  2. The license is a JWT you pass to Activate() when your application starts.
  3. It is required always, in the .exe you distribute too. Up to 3.3.0 it was only validated inside the IDE.
How to activate it, where the JWT comes from and what happens when it is missing is in Licensing, with the full code snippet.

Checking it from VFP

In the Visual FoxPro command window:

Check the registration and the license from the command window
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()

If Ping() fails, it is the registration: this page. If Activate() returns .F., it is the license: the Licensing page. They are not the same problem and they are not fixed the same way.

Common issues

IssueCauseFix
“Class not registered” when creating FoxCore.RuntimeNot registered, or registered only in the view the caller does not look atOpen an administrator console in the installation folder and run register.cmd, which registers both views and reports the exact reason if it fails
I keep loading an old versionA per-user (HKCU) registration is shadowing the machine-wide oneRun unregister-user.cmd WITHOUT elevation
“The worker did not start”No VFP 9 registered as an automation serverRegister it, or point WorkerProgId at another EXE and check it with ProbeWorker()
Activate() returns .F.The JWT is incomplete, belongs to another product, or has expiredCopy it whole from the portal again. The detail is on the Licensing page
Setup will not start and talks about .NET.NET Framework 4.x is missing (the 32-bit RegAsm was not found)Install .NET Framework 4.8 and run it again

Next: Quick Start ->