fix: resolve Windows MSI ICE30 by removing duplicate helmor-cli exter…#865
Merged
Conversation
…nalBin helmor-cli.exe was packaged into the MSI twice — once via the externalBin entry (./target/bundled/helmor-cli) and once via Tauri auto-bundling the crate's [[bin]] — both landing at the same install path. WiX's light.exe rejected this with ICE30 (two components installing the same file). The .app bundle on macOS tolerates the duplicate, so it went unnoticed. Drop the externalBin CLI entry; Tauri's [[bin]] copy alone satisfies the runtime lookup in agent_invocation_path(). Verified: MSI bundles cleanly (ICE30 gone), wxs has a single helmor_cli component, dev flow unaffected.
|
@passion729 is attempting to deploy a commit to the Caspian's Team Team on Vercel. A member of the Team first needs to authorize it. |
The fix removed ./target/bundled/helmor-cli from externalBin, but build-platform.test.js still pinned the 2-entry array, breaking test:frontend. Align the assertion with the single sidecar entry.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves #864
Problem
tauri buildfails on Windows when producing the MSI target. The app compiles fine andhelmor.exeis produced, but WiX'slight.exeaborts during MSI bundling. Tauri swallowslight.exe's stderr, so the surface error is only:Running with
-vreveals the real cause — ICE30:Root cause
helmor-cli.exewas packaged into the bundle through two independent mechanisms, both landing at the same install path:externalBinintauri.conf.json(./target/bundled/helmor-cli) — emitted as componenthelmor_cli.exe.[[bin]](helmor-cliinCargo.toml) — emitted as componenthelmor_cli.On macOS the
.appbundle tolerates the duplicate, which is why this went unnoticed (the project is macOS-first). On Windows, WiX's ICE30 validation rejects two components installing the same file to the same location.Fix
Remove the
./target/bundled/helmor-clientry fromexternalBin. Tauri's[[bin]]copy alone provideshelmor-cli.exenext to the main executable, which is exactly what the runtime lookup expects:agent_invocation_path()returns the barehelmorname resolved via the installed PATH entry.helmor-cli.exesitting next to the running executable (current_exe().parent()), whichstage-dev-cli.mjsstill builds intotarget/debug/.So the dev flow is unaffected, and the MSI now contains a single
helmor_clicomponent.Verification (Windows, x86_64-pc-windows-msvc)
tauri build -b msicompletes withICE30gone; MSI generated atbundle/msi/Helmor_0.40.0_x64_en-US.msi.main.wxscontains a singlehelmor_clicomponent; sidecarexternalBinreferences intact.Follow-up (out of scope)
The removed
externalBinentry still has supporting plumbing (thebuild.rsplaceholder, CLI staging inprepare-sidecar.mjs/stage-dev-cli.mjs, andresolveBundleArtifacts/its tests). These are now redundant but harmless. Cleaning them up touches the macOS-primary build path and is best done as a separate, reviewable change.Environment
x86_64-pc-windows-msvc