Skip to content

Add MSI installer for Windows enterprise deployment #12

@richardwooding

Description

@richardwooding

Feature Request

Create MSI installers for Windows to support enterprise deployment scenarios.

Description

Configure GoReleaser Pro to generate MSI installers, enabling enterprise deployment via Group Policy, SCCM, and other management tools.

Implementation

Add to .goreleaser.yaml (GoReleaser Pro):

msi:
  - id: mcp-server-dump-msi
    name: "MCP Server Dump"
    ids:
      - mcp-server-dump  # reference to Windows builds
    wxs: ./packaging/windows/mcp-server-dump.wxs  # WiX source file
    # Or use the built-in template:
    product_name: "MCP Server Dump"
    publisher: "SPAN Digital"
    license: ./LICENSE
    upgrade_code: "{{ .Env.MSI_UPGRADE_CODE }}"  # needs to be consistent
    
    # Files and directories
    files:
      - source: ./mcp-server-dump.exe
        destination: "ProgramFiles64Folder/MCPServerDump/mcp-server-dump.exe"
    
    # Start menu shortcuts
    shortcuts:
      - name: "MCP Server Dump"
        description: "Extract and document MCP server capabilities"
        target: "[ProgramFiles64Folder]/MCPServerDump/mcp-server-dump.exe"
        working_directory: "ProgramFiles64Folder/MCPServerDump"
        icon: "./assets/icon.ico"
    
    # PATH environment variable
    environment:
      - name: PATH
        value: "[ProgramFiles64Folder]/MCPServerDump"
        permanent: true
        system: true
        action: add
        part: last
    
    # Custom actions (if needed)
    custom_actions:
      - id: CheckDotNet
        execute: immediate
        impersonate: true
        return: check
        script: |
          ' Check for .NET Framework
          If Not IsDotNetInstalled() Then
            Session.Property("DOTNETMISSING") = "1"
          End If

Benefits

  • Enterprise deployment support (GPO, SCCM, Intune)
  • Silent installation options (msiexec /i mcp-server-dump.msi /quiet)
  • Centralized management
  • Rollback capabilities
  • Windows Installer database
  • Upgrade/patch support
  • Per-machine or per-user installation

Requirements

  • GoReleaser Pro license
  • WiX Toolset (if using custom WXS)
  • Code signing certificate for enterprise trust
  • Consistent upgrade codes for updates
  • Icon files (.ico format)

Alternative Approaches

  • Use go-msi in CI pipeline
  • Create MSI using WiX directly
  • Use Advanced Installer or InstallShield

Additional Features

  • Custom dialogs for installation wizard
  • Registry entries
  • File associations
  • Windows service installation (if needed)
  • Prerequisites checking
  • Uninstall cleanup scripts

Notes

  • MSI is a GoReleaser Pro feature
  • Requires Windows build environment or cross-compilation
  • Should be signed for enterprise deployment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions