Updating the ConstructiVision 3.60 InstallShield Installer

Warning

This guide covers legacy InstallShield installer (v3.60) maintenance. For modern deployments, consider migrating to WiX Toolset or other modern installer frameworks.

Overview

The ConstructiVision 3.60 installer is built using InstallShield, an enterprise Windows installer framework. This guide explains the structure and how to update components.

Installer Architecture

File Structure

The installer consists of these key files in src/x86/v3_60/:

setup.exe          - Main launcher stub (self-extracting archive bootstrap)
SETUP.INI          - Configuration file (runtime behavior, disk space, language)
setup.ins          - Compiled InstallShield script (installation logic, binary)
setup.lid          - Language ID file
data1.cab          - Primary CAB archive (compressed file payload)
data1.hdr          - Header metadata for data1.cab (file names, sizes, offsets)
_sys1.cab/.hdr     - System runtime files
_user1.cab/.hdr    - User-specific runtime files
lang.dat           - Language definitions
os.dat             - Operating system detection data
layout.bin         - Installer layout metadata
_INST32I.EX_       - 32-bit installer engine (compressed)
_ISDel.exe         - Cleanup utility
_Setup.dll         - Setup helper library
Setup.bmp          - Installer background/splash image
Autorun.inf        - CD autorun configuration
README.txt         - Installation instructions
v3_60/             - Payload directory (LISP, DCL, DWG files, not compressed in CAB)

How InstallShield Works

  1. Bootstrap: User runs setup.exe

  2. Extraction: setup.exe extracts files from CAB archives and installer engine

  3. Script Execution: The compiled setup.ins script runs with extracted engine

  4. Installation: Script copies files, edits registry, modifies AutoCAD configuration

  5. Cleanup: Temporary files are removed

Updating Components

1. Updating SETUP.INI Configuration

Current contents:

[Startup]
AppName=ConstructiVision
FreeDiskSpace=491
EnableLangDlg=Y

[ISUPDATE]
UpdateURL=http://

How to modify:

  • AppName: Display name shown in Add/Remove Programs

  • FreeDiskSpace: Minimum free disk space required (in MB)

  • EnableLangDlg: Show language selection dialog during install (Y/N)

  • UpdateURL: URL for automatic update checks (currently disabled)

Example changes:

[Startup]
AppName=ConstructiVision 3.60 Updated
FreeDiskSpace=1024
EnableLangDlg=Y

[ISUPDATE]
UpdateURL=http://updates.constructivision.local/

After modifying, rebuild the installer (see Rebuilding section below).

2. Updating Installation Payload Files

Non-CAB payload files in v3_60/ directory can be updated directly without recompilation:

  • LISP files (csvmenu.lsp, etc.): Edit and save

  • DCL dialog files (AutoCAD dialogs): Edit and save

  • DWG sample files (CSS001.dwg through CSSsite.dwg): Replace with new drawings

  • Text files (matlist.txt, etc.): Edit configuration/data

Procedure:

  1. Backup original files

  2. Replace or edit files in v3_60/

  3. Rebuild CAB archives (see below) if adding/removing files

3. Updating CAB Archive Contents (data1.cab)

InstallShield CAB archives contain compiled modules and executables:

data1.cab contains:
  - wincss.exe (registry/utility executable)
  - csv.arx (R14 compiled module, 1.6 MB)
  - Csv.VLX (AutoCAD 2000 compiled module, 1.1 MB)
  - pcms.arx / pcms2.arx (PCMS submodules)
  - csv.mnu/mns/mnc/mnr (menu definition files)
  - csvmenu.lsp (menu loader LISP)

To update CAB contents:

  1. Extract CAB archives: Use 7-Zip or WinRAR to extract data1.cab

  2. Replace files: Update the .arx/.vlx/.exe files

  3. Repackage CAB: Use InstallShield CAB creation tool or 3rd-party tool

  4. Update HDR: Regenerate header metadata with correct offsets

Note: This requires InstallShield CAB tools. See “Rebuilding” section.

4. Updating Compiled Modules (.arx / .vlx)

The installer includes compiled AutoCAD modules:

  • csv.arx - Main ConstructiVision for AutoCAD R14

  • Csv.vlx - Main ConstructiVision for AutoCAD 2000+

  • pcms.arx - PCMS submodules for R14

  • pcms2.arx - PCMS submodules for 2000+

These are compiled binary files. To update:

  1. Recompile your C++ source to generate new .arx or .vlx files

  2. Extract data1.cab (see section 3)

  3. Replace the old .arx/.vlx files with new ones

  4. Repackage CAB and update HDR

  5. Rebuild installer

5. Updating Registry Configuration

The setup.ins script contains hardcoded registry operations that:

  • Add ConstructiVision to AutoCAD support paths

  • Create menu entries in AutoCAD profiles

  • Set configuration values under HKEY_LOCAL_MACHINE\Software\Autodesk\Autocad\...

To modify registry behavior:

  1. Decompile setup.ins (requires InstallShield IDE with script decompiler)

  2. Edit the script to change registry paths/values

  3. Recompile to new setup.ins

  4. Rebuild installer

This is complex and requires InstallShield IDE. Consider extracting the registry operations and documenting them separately.

Rebuilding the Installer

Prerequisites

  • InstallShield (Professional or higher edition)

    • Compatible version: InstallShield 2015 or compatible

    • Available from Revenera/Flexera

  • Visual C++ compiler (for .arx/.vlx recompilation if needed)

  • Project file (.ism file) - may be in src/x86/v3_60/ or parent directory

Using InstallShield IDE

  1. Open Project: File â-’ Open â-’ Select .ism project file for v3.60

  2. Update Files:

    • Double-click “File Groups” or “Installation Designer”

    • Replace/add files in the appropriate locations

    • Update version numbers in “General Information”

  3. Update Configuration:

    • Edit SETUP.INI via InstallShield project settings

    • Modify registry operations in installation script if needed

  4. Build Installer:

    • Build â-’ Build Release

    • Output is generated to Release/ folder

  5. Test Installation: Run setup.exe on test machine

Command-Line Rebuild (ISCmdBld.exe)

If InstallShield project exists:

# Rebuild from command line
$ISPath = "C:\Program Files\InstallShield\System"
& "$ISPath\ISCmdBld.exe" -p "path/to/project.ism" -a Build -r Release

# Output .exe and CAB files generated
# Location: Release/

If Project File Missing

If the original .ism project file is lost:

  1. Reverse-engineer structure:

    • Extract CAB files to identify payload

    • Parse setup.ins strings for registry operations

    • Note: Full recovery may not be possible

  2. Create new InstallShield project:

    • Start fresh InstallShield project

    • Add files from extracted CAB + v3_60/ directory

    • Configure installation locations and registry operations based on extracted information

    • Set SETUP.INI parameters

    • Build new installer

  3. Test thoroughly: Verify on clean Windows + AutoCAD installations

File Update Workflow

Simple Updates (Configuration/Non-compiled Files)

1. Edit SETUP.INI or v3_60/ payload files
2. Extract data1.cab (if updating CAB contents)
3. Replace files, repackage CAB with correct offsets
4. Rebuild with ISCmdBld.exe or IDE
5. Test on clean system
6. Commit to repository

Complex Updates (Compiled Modules)

1. Recompile C++ source (.arx/.vlx)
2. Extract data1.cab
3. Replace .arx/.vlx files with new compiled versions
4. Repackage CAB with new offsets in HDR
5. Update setup.ins if registry behavior changed (requires IDE)
6. Rebuild installer with ISCmdBld.exe
7. Test on AutoCAD R14 and 2000+ targets
8. Commit to repository

Version Tracking

Update the installer version in:

  1. SETUP.INI: Consider adding version comment

  2. README.txt: Document changes

  3. setup.ins: Version string (if accessible)

  4. Repository: Tag releases (e.g., v3.60.1-installer)

Example commit:

git add src/x86/v3_60/
git commit -m "Update ConstructiVision 3.60 installer: updated csvmenu.lsp, added new sample drawings"
git tag v3.60.1-installer
git push origin main --tags

Known Limitations

  • AutoCAD versions: Installer targets R14 and 2000 only (user-selected at install time)

  • Registry integration: May fail on modern AutoCAD versions (2018+) due to profile structure changes

  • Manual recovery: If menu integration fails, users must follow manual recovery steps (documented in README)

  • No auto-update: UpdateURL in SETUP.INI is not functional

Migration Path

Consider migrating from InstallShield to:

  • WiX Toolset: Open-source, XML-based, version-controlled

  • NSIS: Lightweight, script-based

  • Inno Setup: Simple, user-friendly

  • Modern MSI tools: VS 2022 MSI project templates

These provide better version control, CI/CD integration, and support for modern Windows versions.

Troubleshooting

Installer won’t run

  • Check _INST32I.EX_ decompression

  • Verify CAB archives are not corrupted

  • Run on supported OS (Windows XP/2003+ for legacy compatibility)

Installation fails partway through

  • Check AutoCAD is not running

  • Verify 500 MB+ free disk space

  • Check registry permissions (admin required)

CAB extraction fails

  • CAB may be corrupted

  • Use 7-Zip or WinRAR to verify/extract

  • If damaged, rebuild from source files

References