Files
rustdesk/res/msi
rustdesk 9dae15e523 fix(msi): pass the printer name in a format the custom action can read
[~] is MSI's escape for a NUL character, not the delimiter WcaReadStringFromCaData
splits on -- that is a literal wide char 128, which a Formatted property value
cannot carry -- and WcaGetProperty returns a null-terminated string anyway. So
the second field was unreachable: InstallPrinter always fell back to the stock
name and installed a printer and port called "RustDesk Printer" inside a
customer's branded package, while UninstallPrinter, whose data is a single field
and parsed fine, went looking for "Acme Printer" and left the real one behind
for good.

Both actions now read CustomActionData directly and split on a character that
cannot occur in a Windows path or in a validated app name. A package built
before this carries no separator and keeps the stock name, as it did.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7fBdTwziR5BHTkSz7Tzcm
2026-08-06 00:16:24 +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