mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-09-18 18:31:02 +03:00
[~] 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
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
python preprocess.py, seepython preprocess.py -hfor help.- Build the .sln solution.
Run msiexec /i package.msi /l*v install.log to record the log.
Usage
- 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
- Start menu. Uninstall
- custom options
- Custom client.
- firewall and tcp allow. Outgoing
- Show license ?
- Do create service. Outgoing.