Files
fufesou a7deef02a2 fix(msi): keep only native ProductCode uninstall entry (#15891)
* fix(msi): keep only native ProductCode uninstall entry

Move installer state outside the Uninstall registry path,
clean up legacy duplicate entries, and use the MSI ProductCode
for updates and uninstalling.

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix(msi): harden update and uninstall handling

- handle legacy EXE updates without an MSI ProductCode
- propagate MsiExec uninstall failures
- validate and XML-quote custom ARP values

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix(msi): validate registry state before update and uninstall

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix(msi): pass WindowsInstaller state to elevated sequence

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix(msi): block unsupported MSI-to-EXE upgrades

- resolve native MSI state and ProductCode safely
- suppress reboot while preserving MSI uninstall results
- publish the resolved ARP install location
- skip invalid unrelated MSI uninstall entries

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix(msi): fail uninstall when ProductCode is missing

Prevent known MSI installations from falling back to
EXE cleanup when the ProductCode cannot be resolved.

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix(msi): do not abort update on ARP version write failure

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2026-08-22 17:49:00 +08:00
..
2024-04-25 22:35:51 +08:00
2026-06-18 22:37:15 +08:00
2024-04-20 18:20:09 +08:00

RustDesk msi project

Use Visual Studio 2022 to compile this project.

This project is mainly derived from https://github.com/MediaPortal/MediaPortal-2.git .

Steps

  1. python preprocess.py, see python preprocess.py -h for help.
  2. Build the .sln solution.

Run msiexec /i package.msi /l*v install.log to record the log.

Usage

  1. Put the custom dialog bitmaps in "Resources" directory. The supported bitmaps are ['WixUIBannerBmp', 'WixUIDialogBmp', 'WixUIExclamationIco', 'WixUIInfoIco', 'WixUINewIco', 'WixUIUpIco'].

Knowledge

properties

wix-toolset-set-custom-action-run-only-on-uninstall

Property Name Install Uninstall Change Repair Upgrade
Installed False True True True True
REINSTALL False False False True False
UPGRADINGPRODUCTCODE False False False False True
REMOVE False True False False True

TODOs

  1. Start menu. Uninstall
  2. custom options
  3. Custom client.
    1. firewall and tcp allow. Outgoing
    2. Show license ?
    3. Do create service. Outgoing.

Refs

  1. windows-installer-portal
  2. wxs
  3. wxs github