mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-09-18 18:31:02 +03:00
Rebranding recompressed the whole ~100MB payload because one cabinet held everything. In template mode preprocess.py puts the handful of files a custom client replaces on a second cabinet, so a patch rebuilds a few hundred KB and leaves the payload cabinet alone. The shipped msi is built without template mode and keeps its single cabinet. The branding assets need conditional components. A stock build ships none of them -- there is no icon.ico, icon.png or logo*.png, only icon.svg -- so the template has to carry placeholders for the File rows to exist, and a customer supplies whichever they want. Installing a placeholder unconditionally would give a customer with no logo a placeholder image, where today a missing asset means no logo at all: the client tries each candidate and treats the failure as absence. So each optional asset installs only when its property says the customer supplied one. CI creates those placeholders and builds the template with the new mode. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7fBdTwziR5BHTkSz7Tzcm
69 lines
3.0 KiB
XML
69 lines
3.0 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" />
|
|
<!--$Media2Start$-->
|
|
<!-- preprocess.py in template mode adds a second cabinet here, holding only
|
|
the files that differ per customer, so a custom client can be produced by
|
|
rebuilding that small cabinet instead of the whole package. The shipped
|
|
msi is built without template mode and keeps a single cabinet. -->
|
|
<!--$Media2End$-->
|
|
<Icon Id="AppIcon" SourceFile="Resources\icon.ico" />
|
|
|
|
<!-- 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""/>
|
|
</InstallUISequence>
|
|
|
|
<InstallExecuteSequence>
|
|
<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.UninstallApp" />
|
|
<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>
|