Derive the deployment manifest
- Inventory the EXE, runtime, OCX/ActiveX DLLs, native DLLs, data providers, fonts and configuration.
- Identify which COM servers require registration and whether registration is per-machine or per-user.
- Separate immutable program files from writable application data and user settings.
- Declare prerequisites and architecture explicitly; VB6 applications and most dependencies are 32-bit.
- Preserve configuration and user data across upgrades and uninstall.
Do not register every DLL. Only self-registering COM servers with verified identity belong in the registration plan; native dependencies should be deployed without meaningless registration attempts.
Test installation as a product
| Clean standard-user PC | Proves prerequisite, UAC and path behavior. |
|---|---|
| Upgrade | Proves component versioning and data preservation. |
| Repair/uninstall | Proves ownership of files, registrations and shared dependencies. |
| Offline/controlled network | Reveals hidden downloads and inaccessible shares. |
MSI or another maintained installer technology can improve detection and rollback, but package format does not replace a correct dependency manifest.
See registration diagnosis, error 339, Windows migration and the VB6 pillar.