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.
- Click More info.
- 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:
| File | Version | Published | Size | SHA-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:
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
| Component | Requirement |
|---|---|
| Windows | Windows 10 / 11 |
| .NET Framework | 4.8, and setup stops if it cannot find the 32-bit RegAsm |
| Visual FoxPro | VFP 9.0 SP2 registered as an automation server (VisualFoxpro.Application.9) |
| Privileges | Administrator: the registration goes to HKLM, which is what a service or a scheduled task can see |
| Disk space | 10 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
| What | Where |
|---|---|
| Installation folder | C:\Program Files (x86)\FoxCore.Runtime, with bin\, demo\, tools\ and the documentation |
| COM registration | HKLM, 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 license | is not installed: there is no file. It is activated in code with Activate() |
| The demo folder | is left writable by Users, so the demo writes its report where it says and not into the VirtualStore |
| On uninstall | the 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
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:
FoxCore.Runtime-Setup-3.4.2.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTARTThe license
- Installing does not install a license, and that is not an oversight: since 3.4.0 there is no
.licfile. - The license is a JWT you pass to
Activate()when your application starts. - It is required always, in the
.exeyou distribute too. Up to 3.3.0 it was only validated inside the IDE.
Checking it from VFP
In the Visual FoxPro 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
| Issue | Cause | Fix |
|---|---|---|
| “Class not registered” when creating FoxCore.Runtime | Not registered, or registered only in the view the caller does not look at | Open 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 version | A per-user (HKCU) registration is shadowing the machine-wide one | Run unregister-user.cmd WITHOUT elevation |
| “The worker did not start” | No VFP 9 registered as an automation server | Register 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 expired | Copy 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 ->