refactor(installer): split installer UI into its own ui.wxs
Moves the WixUI_Minimal UI and finish-screen launch checkbox out of main.wxs into a dedicated ui.wxs fragment, referenced from main.wxs via <UIRef Id='OpenCADStudioUI'>. Keeps the package/feature definition and the UI concerns in separate files. Updates the release workflow to compile both .wxs files (candle now writes per-source .wixobj into a directory) and link both objects. https://claude.ai/code/session_01DFVSKgViFaxEjZD2KsTdtt
This commit is contained in:
parent
556989dbdb
commit
fd949b74c7
3 changed files with 59 additions and 34 deletions
17
.github/workflows/release.yml
vendored
17
.github/workflows/release.yml
vendored
|
|
@ -128,17 +128,24 @@ jobs:
|
|||
# filename.
|
||||
$exePath = (Resolve-Path target\release\OpenCADStudio.exe).Path
|
||||
$iconPath = (Resolve-Path packaging\windows\AppIcon.ico).Path
|
||||
$wxsPath = (Resolve-Path packaging\windows\main.wxs).Path
|
||||
$wixObj = Join-Path $PWD "packaging\windows\main.wixobj"
|
||||
# main.wxs holds the package/feature; ui.wxs holds the installer UI
|
||||
# and finish-screen launch checkbox. Both compile together.
|
||||
$mainWxs = (Resolve-Path packaging\windows\main.wxs).Path
|
||||
$uiWxs = (Resolve-Path packaging\windows\ui.wxs).Path
|
||||
# candle writes one .wixobj per source into this directory (the
|
||||
# trailing slash tells it -out is a folder, not a single file).
|
||||
$objDir = Join-Path $PWD "packaging\windows\"
|
||||
$msiPath = Join-Path $PWD "OpenCADStudio.msi"
|
||||
& $candle -arch x64 `
|
||||
"-dVersion=$version" `
|
||||
"-dSource=$exePath" `
|
||||
"-dIcon=$iconPath" `
|
||||
$wxsPath `
|
||||
-out $wixObj
|
||||
$mainWxs $uiWxs `
|
||||
-out $objDir
|
||||
if ($LASTEXITCODE -ne 0) { throw "candle failed" }
|
||||
& $light $wixObj -ext WixUIExtension -out $msiPath
|
||||
$mainObj = Join-Path $objDir "main.wixobj"
|
||||
$uiObj = Join-Path $objDir "ui.wixobj"
|
||||
& $light $mainObj $uiObj -ext WixUIExtension -out $msiPath
|
||||
if ($LASTEXITCODE -ne 0) { throw "light failed" }
|
||||
|
||||
- name: Sign MSI installer (Azure Trusted Signing)
|
||||
|
|
|
|||
Loading…
Reference in a new issue