Here’s the full, current procedure. I’ve consolidated it from the community sources that have actually succeeded on W11 (including 24H2).
The install is fiddly because VB6’s 1998 installer (acmsetup.exe) fights W11’s security and data-access stack. Every step below exists to dodge a specific known failure.
What you need first
- VB6 install media — Visual Studio 6.0 Enterprise or Professional ISO (
.iso/.7z). You must legally own it; a VS subscription gives the download. If you only have CDs, copy the whole disc to a local folder (don’t install from optical or network — drive-letter changes break the legacy installer). - Visual Studio 6.0 Service Pack 6 (
setupsp6.exe) — the last official service pack; get it from Microsoft/Wayback if the direct link is gone. - Administrator account on the W11 machine.
- A system restore point before you start (this install touches system DLLs and the registry).
Pre-install: two one-time fixes that prevent 80% of failures
1. Pre-create the ~MSSETUP.T directory
The VS6 installer creates a temp dir at the root of the boot drive (C:\~MSSETUP.T) and fails on W11 because of inherited Mandatory Access Control security on the drive root.
- Create
C:\~MSSETUP.Tmanually before running setup. - Open its Properties → Security → Advanced → Disable inheritance → Remove all inherited permissions (do not copy them down).
- Add your user, Administrator, and the Administrators group with Full Control.
- The result should be a directory with only those three principals and no inherited ACEs. The installer will use it and delete it when done.
If you skip this, you get the classic “Visual Studio 6.0 Setup was not completed successfully” error near the end.
2. Bypass the Java VM check
The installer wants to install the discontinued Microsoft VM for Java and grays out Next if you refuse. Trick it:
- Create an empty file named
MSJAVA.DLLinC:\Windows\SysWOW64(64-bit OS) orC:\Windows\System32(32-bit OS). The installer sees the file, assumes Java VM is present, and skips that step. Delete the dummy file afterward.
Install VB6
3. Prepare the install folder
- Mount the ISO or open your copied install folder.
- Go into the
setup\subfolder and find the.STFfile matching your edition:VS98ENT.STF(Enterprise) orVS98PRO.STF(Professional). - Copy that
.STFfile and rename the copy toacmsetup.STF(in the samesetup\folder). - Copy the entire contents of the
setup\folder up one level — into the root of your install folder (the one that containsacmboot.exe). You’re flatteningsetup\*next toacmboot.exe.
4. Run acmsetup.exe, not setup.exe
setup.exe launches acmboot.exe, which on W11 often errors with “Error launching acmboot.exe.” Bypass it:
- Right-click
acmsetup.exe(now in your flattened root folder) → Properties → Compatibility. - Set Compatibility mode: Windows XP (Service Pack 3). (Some report SP2 works better for SP6 later — try SP3 first, fall back to SP2.)
- Check Run this program as an administrator.
- Run
acmsetup.exedirectly. Do not runsetup.exe.
5. Choose Custom and disable the parts that break on W11
Walk through the wizard:
- Enter your Product ID / license key when prompted.
- Choose Custom setup (not Typical or Products).
- Accept the default install path (
C:\Program Files (x86)\Microsoft Visual Studio). - Data Access → Change Options → uncheck ADO, RDS and OLE DB Providers. This is the single most important checkbox — leaving it checked causes the install to hang indefinitely on “Setup is updating your system” and breaks SP6 installation. You don’t need these for compiling; your apps use whatever data access they already reference.
- Uncheck MSDN (unless you specifically want the local help docs — they’re ancient).
- Skip “Update Microsoft Virtual Machine for Java” (if it still appears, your
MSJAVA.DLLdummy didn’t take — decline it). - For everything else, leave the defaults; you want VB6, the common controls, and the compiler (
vb6.exe).
6. If the install appears to hang
- Open Task Manager and watch
ACMSETUP.EXECPU usage — if it’s active, the installer is working (it can sit “thinking” for ~2 minutes). - If it’s truly stuck (0% CPU, dialog frozen), it’s almost always the Data Access components — kill it, rerun Custom with Data Access unchecked.
- On completion, reboot even if not prompted.
Post-install: Service Pack 6
SP6 is mandatory — it’s the last official service pack and contains compiler fixes, updated controls, and stability fixes many legacy projects expect.
- Get
setupsp6.exe(Microsoft download or Wayback Machine if the direct link 404s). - Right-click
setupsp6.exe→ Compatibility → Windows XP (Service Pack 2) (several report SP2 works where SP3 doesn’t for the SP6 installer). Run as administrator. - Click Continue → I Agree → OK on “Setup Successful.”
- If SP6 refuses to install, it usually means the base VS6 install didn’t complete cleanly — rerun the VS6 install (step 4 onward) with Data Access unchecked, then retry SP6.
- Reboot.
Launch configuration
- Locate
VB6.EXEatC:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.EXE. - Right-click → Properties → Compatibility: set Windows XP (Service Pack 3) and Run as administrator. Apply.
- Launch once as administrator so it can register components and create its registry entries.
- Verify: open a project → Help → About. It should show “Visual Basic 6.0 (SP6)” — if it shows the base release or no SP, SP6 didn’t apply; rerun SP6 as admin with antivirus/endpoint protection temporarily off (it can block file replacement in the VS install dir).
Fix: oleaut32.dll error
If setup errors out with an oleaut32.dll message, the installer’s bundled version is too old:
- Copy the modern
oleaut32.dllfromC:\Windows\System32(orSysWOW64for the 32-bit variant). - Replace the one in your VB6 install source’s
Redist(orWizards\PDWizard\Redist) folder. - Rerun
acmsetup.exe.
(There’s also a standalone OLEAUT32.DLL Security Update on Microsoft Download Center — KB article / download id 4842 — but the file-replacement approach is what most guides use.)
Verify the compiler works for your use case
Since you’re going to build from the command line (not the IDE), confirm vb6.exe works headless:
You should see the switch list (/make, /out, /outdir, /makedll, etc.). Then do a test build of one of your existing .vbp projects:
Open build.log and look for Build of YourProject.vbp succeeded.
Cleanup
- Delete the dummy
C:\Windows\SysWOW64\MSJAVA.DLLif you created it. - The
C:\~MSSETUP.Tfolder is auto-deleted on a successful install; delete it manually if it remains.
Troubleshooting quick reference
| Symptom | Fix |
|---|---|
| “Error launching acmboot.exe” | Run acmsetup.exe directly (not setup.exe) after the .STF rename/flatten step |
| “Setup was not completed successfully” near end | Pre-create C:\~MSSETUP.T with corrected security |
| Hangs on “Setup is updating your system” | Custom install, uncheck Data Access |
| Grays out Next over Java VM | Create dummy MSJAVA.DLL in SysWOW64 |
oleaut32.dll error | Replace Redist copy with the System32 version |
| SP6 won’t install | Run SP6 in XP SP2 compat as admin; disable AV; retry |
| About box shows no SP6 | Re-run SP6 as admin with endpoint protection off |
| Install fails on ARM64 | Not supported on ARM — use an x86/x64 VM (Hyper-V is included with W11 Pro) |
Sources
- FortyPoundHead — canonical W10/11 walkthrough (data access uncheck, SP6 order): https://fortypoundhead.com/showcontent.asp?artid=23993
- Musings of the Proletariat —
~MSSETUP.Tsecurity fix on W11: https://musingsoftheproletariat.com/new-vb6-ide-install-on-windows-11-issue-solved/ - Microsoft Q&A — compat mode, Java VM decline, Data Access uncheck, oleaut32.dll fix: https://learn.microsoft.com/en-us/answers/questions/1695172/how-install-visual-basic-6-on-os-windows-11
- Tek-Tips —
acmsetup.STFrename +acmsetup.exedirect-run method: https://www.tek-tips.com/threads/install-vb6-ide-and-access97-on-w11-arm-version.1833044/ - tertullian.org —
MSJAVA.DLLdummy trick: https://www.tertullian.org/rpearse/installing_vb6_on_win10.htm - VBForums resolved thread (W11): https://www.vbforums.com/showthread.php?902864-RESOLVED-Installing-VB6-on-Windows-11
- FortyPoundHead — Inno Setup-based alternate installer (avoids ACME setup entirely): https://fortypoundhead.com/showcontent.asp?artid=24547
If your W11 build is 24H2 or later and the classic install keeps failing, the Inno Setup port (last source above) is a community-built single-EXE installer that sidesteps most of the ACME setup pain. It is worth trying as a fallback.
Leave a Reply