Skip to content

Commit f5a9018

Browse files
cfsmp3claude
andcommitted
fix(release): Upgrade WiX from v4.0.0-preview.0 to v6.0.2 stable
The WiX build was failing due to several WiX v4 to v6 migration issues. Workflow changes: - Uninstall existing WiX before installing v6.0.2 (force clean install) - WiX version: 4.0.0-preview.0 -> 6.0.2 - Extension: WixToolset.UI.wixext/4.0.0-preview.0 -> WixToolset.UI.wixext/6.0.2 - Fixed extension command syntax: "extension -g add" -> "extension add -g" installer.wxs changes (WiX v6 migration): - Added ui namespace: xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui" - Replaced custom inline UI with standard <ui:WixUI Id="WixUI_InstallDir"> (fixes WIX0094 error for WixUIValidatePath custom action) - Changed Directory to StandardDirectory for DesktopFolder (fixes WIX5437) See: https://github.com/orgs/wixtoolset/discussions/6516 wixtoolset/issues#6998 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
1 parent e01720c commit f5a9018

File tree

2 files changed

+8
-54
lines changed

2 files changed

+8
-54
lines changed

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ jobs:
6565
run: mkdir installer; cp ./x64/Release-Full/ccextractorwinfull.exe ./installer; cp ./x64/Release-Full/*.dll ./installer
6666
working-directory: ./windows
6767
- name: install WiX
68-
run: dotnet tool install --global wix --version 4.0.0-preview.0 && wix extension -g add WixToolset.UI.wixext
68+
run: dotnet tool uninstall --global wix; dotnet tool install --global wix --version 6.0.2 && wix extension add -g WixToolset.UI.wixext/6.0.2
6969
- name: Make sure WiX works
70-
run: wix --version && wix extension -g list
70+
run: wix --version && wix extension list -g
7171
- name: Download Flutter GUI
7272
run: ((Invoke-WebRequest -UseBasicParsing https://api.github.com/repos/CCExtractor/ccextractorfluttergui/releases/latest).Content | ConvertFrom-Json).assets | ForEach-Object {if ($_.name -eq "windows.zip") { Invoke-WebRequest -UseBasicParsing -Uri $_.browser_download_url -OutFile windows.zip}}
7373
working-directory: ./windows

windows/installer.wxs

Lines changed: 6 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
1+
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui">
22
<Package Name="CCExtractor" Language="1033" Version="$(AppVersion)" Manufacturer="CCExtractor development" UpgradeCode="e70dbe37-bb04-4c39-bedc-966a6b073bcf" InstallerVersion="200">
33
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed."/>
44
<MediaTemplate EmbedCab="yes"/>
@@ -12,58 +12,12 @@
1212
<ComponentRef Id="ApplicationShortcutDesktop"/>
1313
</Feature>
1414
<Icon Id="ccxgui.exe" SourceFile="./installer/ccxgui.exe"/>
15-
<!-- Derives from the regular install dir, but skips the license dialog. -->
16-
<UI Id="WixUI_InstallDir">
17-
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
18-
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
19-
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
20-
21-
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
22-
<Property Id="WixUI_Mode" Value="InstallDir" />
23-
24-
<DialogRef Id="BrowseDlg" />
25-
<DialogRef Id="DiskCostDlg" />
26-
<DialogRef Id="ErrorDlg" />
27-
<DialogRef Id="FatalError" />
28-
<DialogRef Id="FilesInUse" />
29-
<DialogRef Id="MsiRMFilesInUse" />
30-
<DialogRef Id="PrepareDlg" />
31-
<DialogRef Id="ProgressDlg" />
32-
<DialogRef Id="ResumeDlg" />
33-
<DialogRef Id="UserExit" />
34-
<Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3" />
35-
<Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4" Condition="NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID&lt;&gt;&quot;1&quot;" />
36-
37-
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999" />
38-
39-
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg" Condition="NOT Installed" />
40-
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Condition="Installed AND PATCH" />
41-
42-
<Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" />
43-
<Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1" />
44-
<Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2" Condition="NOT WIXUI_DONTVALIDATEPATH" />
45-
<Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3" Condition="NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID&lt;&gt;&quot;1&quot;" />
46-
<Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4" Condition="WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID=&quot;1&quot;" />
47-
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1" />
48-
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2" />
49-
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="InstallDirDlg" Order="1" Condition="NOT Installed" />
50-
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2" Condition="Installed AND NOT PATCH" />
51-
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2" Condition="Installed AND PATCH" />
52-
53-
<Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg" />
54-
55-
<Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg" />
56-
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg" />
57-
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg" />
58-
59-
<Property Id="ARPNOMODIFY" Value="1" />
60-
</UI>
61-
62-
<UIRef Id="WixUI_Common" />
63-
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/>
15+
<!-- Use standard WixUI_InstallDir dialog set -->
16+
<ui:WixUI Id="WixUI_InstallDir" InstallDirectory="INSTALLFOLDER" />
17+
<Property Id="ARPNOMODIFY" Value="1" />
6418
</Package>
6519
<Fragment>
66-
<Directory Id="DesktopFolder" Name="Desktop">
20+
<StandardDirectory Id="DesktopFolder">
6721
<Component Id="ApplicationShortcutDesktop" Guid="*">
6822
<Shortcut Id="ApplicationDesktopShortcut"
6923
Name="CCExtractor"
@@ -79,7 +33,7 @@
7933
Value="1"
8034
KeyPath="yes"/>
8135
</Component>
82-
</Directory>
36+
</StandardDirectory>
8337
<StandardDirectory Id="ProgramFiles6432Folder">
8438
<Directory Id="INSTALLFOLDER" Name="CCExtractor">
8539
<Directory Id="CCX_data" Name="data">

0 commit comments

Comments
 (0)