mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-09-17 09:51:02 +03:00
* 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>
67 lines
3.1 KiB
XML
67 lines
3.1 KiB
XML
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
|
|
xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"
|
|
xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui">
|
|
|
|
<?include Includes.wxi?>
|
|
|
|
<Package Name="$(var.Product)" Version="$(var.Version)" Manufacturer="$(var.Manufacturer)" Language="!(loc.ProductLanguage)" UpgradeCode="$(var.UpgradeCode)" Scope="perMachine">
|
|
|
|
<SummaryInformation Keywords="Installer" Description="$(var.Description)" Codepage="!(loc.SummaryCodepage)" />
|
|
|
|
<!--<PropertyRef Id="UpgradesFile" />-->
|
|
|
|
<PropertyRef Id="AddRemovePropertiesFile" />
|
|
|
|
<Media Id="1" Cabinet="cab1.cab" EmbedCab="yes" CompressionLevel="high" />
|
|
<Icon Id="AppIcon" SourceFile="Resources\icon.ico" />
|
|
<CustomAction Id="BlockSelfInstalledApp" Error="!(loc.AnotherAppDialogDescription)" />
|
|
|
|
<!-- User Interface -->
|
|
<WixVariable Id="WixUILicenseRtf" Value="License.rtf" />
|
|
|
|
<ui:WixUI Id="UI_MyInstallDialog" InstallDirectory="INSTALLFOLDER_INNER" />
|
|
<UIRef Id="WixUI_ErrorProgressText" />
|
|
|
|
<InstallUISequence>
|
|
<Show Dialog="UI_AnotherAppDialog" Before="WelcomeDlg" Condition="NOT Installed AND (APP_WINDOWS_INSTALLER="#0" OR APP_WINDOWS_INSTALLER32="#0")"/>
|
|
</InstallUISequence>
|
|
|
|
<InstallExecuteSequence>
|
|
<Custom Action="BlockSelfInstalledApp" After="AppSearch" Condition="NOT Installed AND (APP_WINDOWS_INSTALLER="#0" OR APP_WINDOWS_INSTALLER32="#0")" />
|
|
<InstallExecute After="RemoveExistingProducts" />
|
|
|
|
<!--Only do InstallValidate if is not Uninstall-->
|
|
<!--<InstallValidate Condition="NOT (Installed AND REMOVE AND NOT UPGRADINGPRODUCTCODE )" />-->
|
|
<!--Only do InstallValidate if is Install-->
|
|
<InstallValidate Condition="NOT Installed" />
|
|
|
|
</InstallExecuteSequence>
|
|
|
|
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" Schedule="afterInstallInitialize" AllowSameVersionUpgrades="yes" />
|
|
|
|
<Feature Id="App" Level="1" AllowAdvertise="no" Display="expand" Title="!(loc.F_App)" Description="!(loc.F_App_Desc)" AllowAbsent="no">
|
|
<ComponentGroupRef Id="Components" />
|
|
|
|
<ComponentRef Id="Product.Registry.InstallFolder" />
|
|
<ComponentRef Id="Product.Registry.DefaultIcon" />
|
|
<ComponentRef Id="Product.Registry.CommandPlay" />
|
|
<ComponentRef Id="Product.Registry.URLProtocol" />
|
|
<ComponentRef Id="Product.Registry.Command" />
|
|
<ComponentRef Id="Product.Registry.InstallState" />
|
|
<ComponentRef Id="Product.Registry.RemoveLegacyUninstall64" />
|
|
<ComponentRef Id="Product.Registry.RemoveLegacyUninstall32" />
|
|
<ComponentRef Id="App.StartMenu" />
|
|
<ComponentRef Id="Product.Registry.PersistedStartMenuShortcutProperties1" />
|
|
<ComponentRef Id="Product.Registry.PersistedStartMenuShortcutProperties0" />
|
|
<ComponentRef Id="Product.Registry.PersistedDesktopShortcutProperties1" />
|
|
<ComponentRef Id="Product.Registry.PersistedDesktopShortcutProperties0" />
|
|
<ComponentRef Id="Product.Registry.PersistedPrinterProperties1" />
|
|
<ComponentRef Id="Product.Registry.PersistedPrinterProperties0" />
|
|
</Feature>
|
|
|
|
<!--https://wixtoolset.org/docs/tools/wixext/wixui/#customizing-a-dialog-set-->
|
|
<!--$CustomBitmapsStart$-->
|
|
<!--$CustomBitmapsEnd$-->
|
|
</Package>
|
|
</Wix>
|