[bug] Wix Bundle main.wxs Failed
Opened this issue · 3 comments
bearki commented
Describe the bug
I made a copy of main.wxs with the following contents
<?if $(sys.BUILDARCH)="x86"?>
<?define Win64 = "no" ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?elseif $(sys.BUILDARCH)="x64"?>
<?define Win64 = "yes" ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?elseif $(sys.BUILDARCH)="arm64"?>
<?define Win64 = "yes" ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?else?>
<?error Unsupported value of sys.BUILDARCH=$(sys.BUILDARCH)?>
<?endif?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product
Id="*"
Name="{{product_name}}"
UpgradeCode="{{upgrade_code}}"
Language="!(loc.TauriLanguage)"
Manufacturer="{{manufacturer}}"
Version="{{version}}">
<Package Id="*"
Keywords="Installer"
InstallerVersion="450"
Languages="0"
Compressed="yes"
InstallScope="perMachine"
SummaryCodepage="!(loc.TauriCodepage)"/>
<!-- https://docs.microsoft.com/en-us/windows/win32/msi/reinstallmode -->
<!-- reinstall all files; rewrite all registry entries; reinstall all shortcuts -->
<Property Id="REINSTALLMODE" Value="amus" />
<!-- Auto launch app after installation, useful for passive mode which usually used in updates -->
<Property Id="AUTOLAUNCHAPP" Secure="yes" />
<!-- Property to forward cli args to the launched app to not lose those of the pre-update instance -->
<Property Id="LAUNCHAPPARGS" Secure="yes" />
{{#if allow_downgrades}}
<MajorUpgrade Schedule="afterInstallInitialize" AllowDowngrades="yes" />
{{else}}
<MajorUpgrade Schedule="afterInstallInitialize" DowngradeErrorMessage="!(loc.DowngradeErrorMessage)" AllowSameVersionUpgrades="yes" />
{{/if}}
<InstallExecuteSequence>
<RemoveShortcuts>Installed AND NOT UPGRADINGPRODUCTCODE</RemoveShortcuts>
</InstallExecuteSequence>
<Media Id="1" Cabinet="app.cab" EmbedCab="yes" />
{{#if banner_path}}
<WixVariable Id="WixUIBannerBmp" Value="{{banner_path}}" />
{{/if}}
{{#if dialog_image_path}}
<WixVariable Id="WixUIDialogBmp" Value="{{dialog_image_path}}" />
{{/if}}
{{#if license}}
<WixVariable Id="WixUILicenseRtf" Value="{{license}}" />
{{/if}}
<Icon Id="ProductIcon" SourceFile="{{icon_path}}"/>
<Property Id="ARPPRODUCTICON" Value="ProductIcon" />
<Property Id="ARPNOREPAIR" Value="yes" Secure="yes" /> <!-- Remove repair -->
<SetProperty Id="ARPNOMODIFY" Value="1" After="InstallValidate" Sequence="execute"/>
<!-- initialize with previous InstallDir -->
<Property Id="INSTALLDIR">
<RegistrySearch Id="PrevInstallDirReg" Root="HKCU" Key="Software\\{{manufacturer}}\\{{product_name}}" Name="InstallDir" Type="raw"/>
</Property>
<!-- launch app checkbox -->
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="!(loc.LaunchApp)" />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1"/>
<CustomAction Id="LaunchApplication" Impersonate="yes" FileKey="Path" ExeCommand="[LAUNCHAPPARGS]" Return="asyncNoWait" />
<UI>
<!-- launch app checkbox -->
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
{{#unless license}}
<!-- Skip license dialog -->
<Publish Dialog="WelcomeDlg"
Control="Next"
Event="NewDialog"
Value="InstallDirDlg"
Order="2">1</Publish>
<Publish Dialog="InstallDirDlg"
Control="Back"
Event="NewDialog"
Value="WelcomeDlg"
Order="2">1</Publish>
{{/unless}}
</UI>
<UIRef Id="WixUI_InstallDir" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" Name="Desktop">
<Component Id="ApplicationShortcutDesktop" Guid="*">
<Shortcut Id="ApplicationDesktopShortcut" Name="三青鸟智能识别服务" Description="运行 三青鸟智能识别服务" Target="[!Path]" WorkingDirectory="INSTALLDIR" />
<RemoveFolder Id="DesktopFolder" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\\{{manufacturer}}\\{{product_name}}" Name="Desktop Shortcut" Type="integer" Value="1" KeyPath="yes" />
</Component>
</Directory>
<Directory Id="$(var.PlatformProgramFilesFolder)" Name="PFiles">
<Directory Id="INSTALLDIR" Name="{{product_name}}"/>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="{{product_name}}"/>
</Directory>
</Directory>
<DirectoryRef Id="INSTALLDIR">
<Component Id="RegistryEntries" Guid="*">
<RegistryKey Root="HKCU" Key="Software\\{{manufacturer}}\\{{product_name}}">
<RegistryValue Name="InstallDir" Type="string" Value="[INSTALLDIR]" KeyPath="yes" />
</RegistryKey>
</Component>
<Component Id="Path" Guid="{{path_component_guid}}" Win64="$(var.Win64)">
<File Id="Path" Source="{{app_exe_source}}" KeyPath="yes" Checksum="yes"/>
</Component>
{{#each binaries as |bin| ~}}
<Component Id="{{ bin.id }}" Guid="{{bin.guid}}" Win64="$(var.Win64)">
<File Id="Bin_{{ bin.id }}" Source="{{bin.path}}" KeyPath="yes"/>
</Component>
{{/each~}}
{{#if enable_elevated_update_task}}
<Component Id="UpdateTask" Guid="C492327D-9720-4CD5-8DB8-F09082AF44BE" Win64="$(var.Win64)">
<File Id="UpdateTask" Source="update.xml" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="UpdateTaskInstaller" Guid="011F25ED-9BE3-50A7-9E9B-3519ED2B9932" Win64="$(var.Win64)">
<File Id="UpdateTaskInstaller" Source="install-task.ps1" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="UpdateTaskUninstaller" Guid="D4F6CC3F-32DC-5FD0-95E8-782FFD7BBCE1" Win64="$(var.Win64)">
<File Id="UpdateTaskUninstaller" Source="uninstall-task.ps1" KeyPath="yes" Checksum="yes"/>
</Component>
{{/if}}
{{resources}}
<Component Id="CMP_UninstallShortcut" Guid="*">
<Shortcut Id="UninstallShortcut"
Name="Uninstall {{product_name}}"
Description="Uninstalls {{product_name}}"
Target="[System64Folder]msiexec.exe"
Arguments="/x [ProductCode]" />
<RemoveFolder Id="INSTALLDIR"
On="uninstall" />
<RegistryValue Root="HKCU"
Key="Software\\{{manufacturer}}\\{{product_name}}"
Name="Uninstaller Shortcut"
Type="integer"
Value="1"
KeyPath="yes" />
</Component>
</DirectoryRef>
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcut" Guid="*">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="三青鸟智能识别服务"
Description="运行 三青鸟智能识别服务"
Target="[!Path]"
Icon="ProductIcon"
WorkingDirectory="INSTALLDIR">
<ShortcutProperty Key="System.AppUserModel.ID" Value="{{bundle_id}}"/>
</Shortcut>
<RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
<RegistryValue Root="HKCU" Key="Software\\{{manufacturer}}\\{{product_name}}" Name="Start Menu Shortcut" Type="integer" Value="1" KeyPath="yes"/>
</Component>
</DirectoryRef>
..............................
</Product>
</Wix>
Reproduction
No response
Expected behavior
No response
Full tauri info
output
> sanqingniaosdk-server@0.0.0 tauri D:\Project\sanqingniao-sdk-server
> tauri "info"
[✔] Environment
- OS: Windows 10.0.26100 x86_64 (X64)
✔ WebView2: 131.0.2903.86
✔ MSVC: Visual Studio Community 2022
✔ rustc: 1.77.2 (25ef9e3d8 2024-04-09)
✔ cargo: 1.77.2 (e52e36006 2024-03-26)
✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
✔ Rust toolchain: 1.77-x86_64-pc-windows-msvc (default)
- node: 22.11.0
- pnpm: 9.12.3
- npm: 10.9.0
[-] Packages
- tauri 🦀: 2.1.1
- tauri-build 🦀: 2.0.3
- wry 🦀: 0.47.0
- tao 🦀: 0.30.8
- @tauri-apps/api : 2.0.0-rc.4 (outdated, latest: 2.1.1)
- @tauri-apps/cli : 2.1.0
Stack trace
> sanqingniaosdk-server@0.0.0 tauri D:\Project\sanqingniao-sdk-server
> tauri "build" "-v" "--target" "x86_64-pc-windows-msvc"
Debug [ignore::gitignore] opened gitignore file: C:\Users\WORK\AppData\Local\Temp\.gitignore
Debug [globset] built glob set; 0 literals, 3 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
Debug [ignore::gitignore] opened gitignore file: D:\Project\sanqingniao-sdk-server\.gitignore
Debug [globset] glob converted to regex: Glob { glob: "**/npm-debug.log*", re: "(?-u)^(?:/?|.*/)npm\\-debug\\.log[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, Literal('n'), Literal('p'), Literal('m'), Literal('-'), Literal('d'), Literal('e'), Literal('b'), Literal('u'), Literal('g'), Literal('.'), Literal('l'), Literal('o'), Literal('g'), ZeroOrMore]) }
Debug [globset] glob converted to regex: Glob { glob: "**/yarn-debug.log*", re: "(?-u)^(?:/?|.*/)yarn\\-debug\\.log[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, Literal('y'), Literal('a'), Literal('r'), Literal('n'), Literal('-'), Literal('d'), Literal('e'), Literal('b'), Literal('u'), Literal('g'), Literal('.'), Literal('l'), Literal('o'), Literal('g'), ZeroOrMore]) }
Debug [globset] glob converted to regex: Glob { glob: "**/yarn-error.log*", re: "(?-u)^(?:/?|.*/)yarn\\-error\\.log[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, Literal('y'), Literal('a'), Literal('r'), Literal('n'), Literal('-'), Literal('e'), Literal('r'), Literal('r'), Literal('o'), Literal('r'), Literal('.'), Literal('l'), Literal('o'), Literal('g'), ZeroOrMore]) }
Debug [globset] glob converted to regex: Glob { glob: "**/pnpm-debug.log*", re: "(?-u)^(?:/?|.*/)pnpm\\-debug\\.log[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, Literal('p'), Literal('n'), Literal('p'), Literal('m'), Literal('-'), Literal('d'), Literal('e'), Literal('b'), Literal('u'), Literal('g'), Literal('.'), Literal('l'), Literal('o'), Literal('g'), ZeroOrMore]) }
Debug [globset] glob converted to regex: Glob { glob: "**/lerna-debug.log*", re: "(?-u)^(?:/?|.*/)lerna\\-debug\\.log[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, Literal('l'), Literal('e'), Literal('r'), Literal('n'), Literal('a'), Literal('-'), Literal('d'), Literal('e'), Literal('b'), Literal('u'), Literal('g'), Literal('.'), Literal('l'), Literal('o'), Literal('g'), ZeroOrMore]) }
Debug [globset] glob converted to regex: Glob { glob: "**/*.ntvs*", re: "(?-u)^(?:/?|.*/)[^/]*\\.ntvs[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, ZeroOrMore, Literal('.'), Literal('n'), Literal('t'), Literal('v'), Literal('s'), ZeroOrMore]) }
Debug [globset] glob converted to regex: Glob { glob: "**/*.sw?", re: "(?-u)^(?:/?|.*/)[^/]*\\.sw[^/]$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, ZeroOrMore, Literal('.'), Literal('s'), Literal('w'), Any]) }
Debug [globset] built glob set; 1 literals, 7 basenames, 5 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 7 regexes
Debug [ignore::gitignore] opened gitignore file: D:\Project\sanqingniao-sdk-server\.git\info/exclude
Debug [ignore::walk] ignoring D:\Project\sanqingniao-sdk-server\.git: Ignore(IgnoreMatch(Hidden))
Debug [ignore::walk] ignoring D:\Project\sanqingniao-sdk-server\.gitignore: Ignore(IgnoreMatch(Hidden))
Debug [ignore::walk] ignoring D:\Project\sanqingniao-sdk-server\.vscode: Ignore(IgnoreMatch(Hidden))
Debug [ignore::walk] ignoring D:\Project\sanqingniao-sdk-server\node_modules: Ignore(IgnoreMatch(Gitignore(Glob { from: Some("D:\\Project\\sanqingniao-sdk-server\\.gitignore"), original: "node_modules", actual: "**/node_modules", is_whitelist: false, is_only_dir: false })))
Debug [ignore::walk] ignoring D:\Project\sanqingniao-sdk-server\publish: Ignore(IgnoreMatch(Gitignore(Glob { from: Some("D:\\Project\\sanqingniao-sdk-server\\.gitignore"), original: "publish/", actual: "**/publish", is_whitelist: false, is_only_dir: true })))
Debug [ignore::gitignore] opened gitignore file: D:\Project\sanqingniao-sdk-server\src-tauri\.taurignore
Debug [globset] glob converted to regex: Glob { glob: "**/*", re: "(?-u)^(?:/?|.*/)[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, ZeroOrMore]) }
Debug [globset] built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
Debug [ignore::gitignore] opened gitignore file: D:\Project\sanqingniao-sdk-server\src-tauri\.gitignore
Debug [globset] built glob set; 6 literals, 1 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
Running [tauri_cli::helpers] beforeBuildCommand `pnpm build`
Debug [tauri_cli::helpers] Setting environment for hook {"TAURI_ENV_PLATFORM_VERSION": "10.0.26100", "TAURI_ENV_TARGET_TRIPLE": "x86_64-pc-windows-msvc", "TAURI_ENV_ARCH": "x86_64", "TAURI_ENV_FAMILY": "windows", "TAURI_ENV_PLATFORM": "windows"}
Running [tauri_cli] Command `cmd /S /C pnpm build`
> sanqingniaosdk-server@0.0.0 build D:\Project\sanqingniao-sdk-server
> vue-tsc --noEmit && vite build
vite v5.4.3 building for production...
✓ 1303 modules transformed.
dist/pages/main.html 0.76 kB │ gzip: 0.52 kB
dist/pages/splashscreen.html 1.80 kB │ gzip: 0.80 kB
dist/assets/baizealgo_back-Dgf-8QIC.jpg 41.68 kB
dist/assets/erlangshenalgo_back-DSYKtN6F.jpg 62.85 kB
dist/assets/sanqingniaosdk_back-BzInh3_R.jpg 68.87 kB
dist/assets/CheckUpdate-CtAyQnI0.css 0.08 kB │ gzip: 0.09 kB
dist/assets/index-COY1Xr-1.css 0.25 kB │ gzip: 0.16 kB
dist/assets/index-D51qY0Tq.css 0.88 kB │ gzip: 0.35 kB
dist/assets/index-aSSsIgfw.css 1.00 kB │ gzip: 0.34 kB
dist/assets/main-BpK3FEd3.css 403.51 kB │ gzip: 49.64 kB
dist/assets/index-CVYIof_7.js 0.24 kB │ gzip: 0.16 kB
dist/assets/core-CMakcZJw.js 1.31 kB │ gzip: 0.67 kB
dist/assets/index-Dh9UD-Wn.js 2.84 kB │ gzip: 1.46 kB
dist/assets/index-ChWv-SvG.js 5.13 kB │ gzip: 2.28 kB
dist/assets/index-BaENkhqC.js 11.94 kB │ gzip: 2.91 kB
dist/assets/CheckUpdate-DqEdpYxG.js 95.84 kB │ gzip: 47.96 kB
dist/assets/main-BF6nlF4B.js 1,400.14 kB │ gzip: 362.48 kB
(!) Some chunks are larger than 500 kB after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
✓ built in 6.18s
Running [tauri_cli] Command `cargo build --bins --features tauri/custom-protocol,tauri/native-tls --release --target x86_64-pc-windows-msvc`
Compiling proc-macro2 v1.0.86
Compiling unicode-ident v1.0.12
Compiling windows_x86_64_msvc v0.52.6
Compiling cfg-if v1.0.0
Compiling autocfg v1.3.0
Compiling serde v1.0.204
Compiling siphasher v0.3.11
Compiling ppv-lite86 v0.2.17
Compiling syn v1.0.109
Compiling getrandom v0.1.16
Compiling windows_x86_64_msvc v0.48.5
Compiling getrandom v0.2.15
Compiling thiserror v1.0.62
Compiling rand_core v0.6.4
Compiling parking_lot_core v0.9.10
Compiling phf_shared v0.8.0
Compiling rand_chacha v0.3.1
Compiling phf_shared v0.10.0
Compiling lock_api v0.4.12
Compiling fnv v1.0.7
Compiling proc-macro-hack v0.5.20+deprecated
Compiling rand v0.8.5
Compiling ident_case v1.0.1
Compiling strsim v0.11.1
Compiling smallvec v1.13.2
Compiling hashbrown v0.14.5
Compiling convert_case v0.4.0
Compiling windows-targets v0.52.6
Compiling rand_core v0.5.1
Compiling equivalent v1.0.1
Compiling windows-sys v0.52.0
Compiling phf_shared v0.11.2
Compiling thiserror v2.0.3
Compiling rand_chacha v0.2.2
Compiling rand_pcg v0.2.1
Compiling winnow v0.5.40
Compiling rand v0.7.3
Compiling once_cell v1.19.0
Compiling memchr v2.7.4
Compiling quote v1.0.36
Compiling phf_generator v0.10.0
Compiling syn v2.0.87
Compiling string_cache_codegen v0.5.2
Compiling phf_codegen v0.10.0
Compiling indexmap v2.2.6
Compiling itoa v1.0.11
Compiling phf_generator v0.11.2
Compiling phf_generator v0.8.0
Compiling new_debug_unreachable v1.0.6
Compiling byteorder v1.5.0
Compiling serde_json v1.0.120
Compiling markup5ever v0.11.0
Compiling phf_codegen v0.8.0
Compiling semver v1.0.23
Compiling scopeguard v1.2.0
Compiling selectors v0.22.0
Compiling tinyvec_macros v0.1.1
Compiling tinyvec v1.8.0
Compiling ryu v1.0.18
Compiling precomputed-hash v0.1.1
Compiling mac v0.1.1
Compiling indexmap v1.9.3
Compiling futf v0.1.5
Compiling parking_lot v0.12.3
Compiling percent-encoding v2.3.1
Compiling log v0.4.22
Compiling pin-project-lite v0.2.14
Compiling bitflags v1.3.2
Compiling unicode-bidi v0.3.15
Compiling dtoa v1.0.9
Compiling utf-8 v0.7.6
Compiling unicode-normalization v0.1.23
Compiling form_urlencoded v1.2.1
Compiling dtoa-short v0.3.5
Compiling tendril v0.4.3
Compiling aho-corasick v1.1.3
Compiling phf v0.10.1
Compiling itoa v0.4.8
Compiling nodrop v0.1.14
Compiling idna v0.5.0
Compiling unic-common v0.9.0
Compiling matches v0.1.10
Compiling regex-syntax v0.8.4
Compiling camino v1.1.7
Compiling stable_deref_trait v1.2.0
Compiling hashbrown v0.12.3
Compiling alloc-no-stdlib v2.0.4
Compiling unic-char-range v0.9.0
Compiling alloc-stdlib v0.2.2
Compiling unic-char-property v0.9.0
Compiling servo_arc v0.1.1
Compiling unic-ucd-version v0.9.0
Compiling windows-targets v0.48.5
Compiling fxhash v0.2.1
Compiling schemars v0.8.21
Compiling darling_core v0.20.10
Compiling winapi-util v0.1.8
Compiling serde_derive_internals v0.29.1
Compiling thin-slice v0.1.1
Compiling typeid v1.0.0
Compiling same-file v1.0.6
Compiling windows-sys v0.48.0
Compiling unic-ucd-ident v0.9.0
Compiling brotli-decompressor v4.0.1
Compiling slab v0.4.9
Compiling dyn-clone v1.0.17
Compiling bytes v1.6.1
Compiling anyhow v1.0.86
Compiling futures-core v0.3.30
Compiling regex-automata v0.4.7
Compiling futures-sink v0.3.30
Compiling http v1.1.0
Compiling brotli v7.0.0
Compiling walkdir v2.5.0
Compiling glob v0.3.1
Compiling dunce v1.0.4
Compiling version_check v0.9.4
Compiling libc v0.2.155
Compiling cc v1.1.5
Compiling futures-channel v0.3.30
Compiling heck v0.5.0
Compiling futures-task v0.3.30
Compiling pin-utils v0.1.0
Compiling futures-io v0.3.30
Compiling serde_derive v1.0.204
Compiling thiserror-impl v1.0.62
Compiling cssparser v0.27.2
Compiling phf_macros v0.8.0
Compiling html5ever v0.26.0
Compiling darling_macro v0.20.10
Compiling cssparser-macros v0.6.1
Compiling darling v0.20.10
Compiling derive_more v0.99.18
Compiling thiserror-impl v2.0.3
Compiling phf_macros v0.11.2
Compiling serde_with_macros v3.9.0
Compiling phf v0.8.0
Compiling ctor v0.2.8
Compiling regex v1.10.5
Compiling schemars_derive v0.8.21
Compiling vswhom-sys v0.1.2
Compiling phf v0.11.2
Compiling futures-macro v0.3.30
Compiling mio v0.8.11
Compiling socket2 v0.5.7
Compiling num_cpus v1.16.0
Compiling futures-util v0.3.30
Compiling winreg v0.52.0
Compiling vswhom v0.1.0
Compiling tracing-attributes v0.1.27
Compiling tracing-core v0.1.32
Compiling option-ext v0.2.0
Compiling dirs-sys v0.4.1
Compiling windows-result v0.2.0
Compiling httparse v1.9.4
Compiling typenum v1.17.0
Compiling windows-strings v0.1.0
Compiling dirs v5.0.1
Compiling tracing v0.1.40
Compiling pin-project-internal v1.1.5
Compiling windows-implement v0.58.0
Compiling windows-interface v0.58.0
Compiling serde_spanned v0.6.6
Compiling toml_datetime v0.6.3
Compiling toml_edit v0.20.2
Compiling uuid v1.10.0
Compiling string_cache v0.8.7
Compiling url v2.5.2
Compiling cfb v0.7.3
Compiling cargo-platform v0.1.8
Compiling erased-serde v0.4.5
Compiling jsonptr v0.6.3
Compiling cargo_metadata v0.18.1
Compiling infer v0.16.0
Compiling json-patch v3.0.1
Compiling serde-untagged v0.1.6
Compiling urlpattern v0.3.0
Compiling serde_with v3.9.0
Compiling toml v0.8.2
Compiling kuchikiki v0.8.2
Compiling tokio v1.38.0
Compiling rustc_version v0.4.0
Compiling toml_edit v0.19.15
Compiling embed-resource v2.4.2
Compiling http-body v1.0.1
Compiling cargo_toml v0.17.2
Compiling tauri-utils v2.1.0
Compiling generic-array v0.14.7
Compiling toml v0.7.8
Compiling try-lock v0.2.5
Compiling tauri-winres v0.1.1
Compiling atomic-waker v1.1.2
Compiling want v0.3.1
Compiling pin-project v1.1.5
Compiling windows-core v0.58.0
Compiling bitflags v2.6.0
Compiling tokio-util v0.7.11
Compiling h2 v0.4.5
Compiling crossbeam-utils v0.8.20
Compiling tower-service v0.3.2
Compiling tower-layer v0.3.2
Compiling simd-adler32 v0.3.7
Compiling tower v0.4.13
Compiling tauri-build v2.0.3
Compiling windows v0.58.0
Compiling dpi v0.1.1
Compiling raw-window-handle v0.6.2
Compiling adler v1.0.2
Compiling miniz_oxide v0.7.4
Compiling hyper v1.4.1
Compiling tauri-plugin v2.0.3
Compiling hyper-util v0.1.6
Compiling webview2-com-sys v0.33.0
Compiling crc32fast v1.4.2
Compiling time-core v0.1.2
Compiling winapi v0.3.9
Compiling unicode-segmentation v1.11.0
Compiling num-conv v0.1.0
Compiling native-tls v0.2.12
Compiling powerfmt v0.2.0
Compiling deranged v0.3.11
Compiling time-macros v0.2.18
Compiling flate2 v1.0.30
Compiling crossbeam-channel v0.5.13
Compiling block-buffer v0.10.4
Compiling crypto-common v0.1.6
Compiling fdeflate v0.3.4
Compiling http-body-util v0.1.2
Compiling cookie v0.18.1
Compiling schannel v0.1.23
Compiling windows-version v0.1.1
Compiling cfg_aliases v0.2.1
Compiling base64 v0.22.1
Compiling time v0.3.36
Compiling softbuffer v0.4.5
Compiling png v0.17.13
Compiling digest v0.10.7
Compiling tauri v2.1.1
Compiling serde_urlencoded v0.7.1
Compiling serde_repr v0.1.19
Compiling webview2-com-macros v0.8.0
Compiling wry v0.47.0
Compiling tauri-runtime v2.2.0
Compiling cpufeatures v0.2.12
Compiling sha2 v0.10.8
Compiling ico v0.3.0
Compiling tokio-native-tls v0.3.1
Compiling keyboard-types v0.7.0
Compiling instant v0.1.13
Compiling windows-sys v0.59.0
Compiling rustls-pki-types v1.7.0
Compiling utf8parse v0.2.2
Compiling lazy_static v1.5.0
Compiling tauri-runtime-wry v2.2.0
Compiling anstyle v1.0.7
Compiling anstyle-wincon v3.0.3
Compiling anstyle-parse v0.2.4
Compiling tauri-codegen v2.0.3
Compiling rustls-pemfile v2.1.2
Compiling hyper-tls v0.6.0
Compiling serialize-to-javascript-impl v0.1.1
Compiling anstyle-query v1.1.0
Compiling encoding_rs v0.8.34
Compiling sync_wrapper v1.0.1
Compiling colorchoice v1.0.1
Compiling mime v0.3.17
Compiling ipnet v2.9.0
Compiling is_terminal_polyfill v1.70.0
Compiling anstream v0.6.14
Compiling muda v0.15.3
Compiling serialize-to-javascript v0.1.1
Compiling tray-icon v0.19.1
Compiling reqwest v0.12.5
Compiling window-vibrancy v0.5.0
Compiling winreg v0.10.1
Compiling clap_lex v0.7.1
Compiling cfg_aliases v0.1.1
Compiling nix v0.28.0
Compiling clap_builder v4.5.9
Compiling tauri-macros v2.0.3
Compiling tauri-plugin-shell v2.0.2
Compiling tauri-plugin-upload v2.1.0
Compiling tauri-plugin-autostart v2.0.1
Compiling futures-executor v0.3.30
Compiling clap_derive v4.5.8
Compiling num-traits v0.2.19
Compiling hex v0.4.3
Compiling hyper-named-pipe v0.1.0
Compiling futures v0.3.30
Compiling bollard-stubs v1.44.0-rc.2
Compiling env_filter v0.1.0
Compiling windows-core v0.52.0
Compiling kill_tree v0.2.4
Compiling humantime v2.1.0
Compiling clap v4.5.9
Compiling clap-verbosity-flag v2.2.0
Compiling env_logger v0.11.3
Compiling windows v0.52.0
Compiling auto-launch v0.5.0
Compiling read-progress-stream v1.0.0
Compiling shared_child v1.0.0
Compiling sanqingniaosdk-server v1.0.0 (D:\Project\sanqingniao-sdk-server\src-tauri)
Compiling os_pipe v1.2.0
Compiling open v5.3.0
Compiling chrono v0.4.38
Compiling fern v0.6.2
Compiling tao v0.30.8
Compiling webview2-com v0.33.0
Compiling bollard v0.16.1
Compiling killport v1.1.0
Compiling tauri-plugin-single-instance v2.0.1
Finished release [optimized] target(s) in 1m 52s
Built [tauri_cli::build] application at: D:\Project\sanqingniao-sdk-server\src-tauri\target\x86_64-pc-windows-msvc\release\sanqingniaosdk-server.exe
Signing [tauri_bundler::bundle::windows::sign] D:\Project\sanqingniao-sdk-server\src-tauri\target\x86_64-pc-windows-msvc\release\sanqingniaosdk-server.exe
Signing [tauri_bundler::bundle::windows::sign] D:\Project\sanqingniao-sdk-server\src-tauri\target\x86_64-pc-windows-msvc\release\sanqingniaosdk-server.exe with a custom signing command
Running [tauri_bundler::bundle::common] Command `sign-client -file D:\Project\sanqingniao-sdk-server\src-tauri\target\x86_64-pc-windows-msvc\release\sanqingniaosdk-server.exe`
Application signing···
Application sign over.
Info [tauri_bundler::bundle::windows::sign] "Application signing···\nApplication sign over.\n"
Info [tauri_bundler::bundle::windows::msi] Target: x64
Downloading [tauri_bundler::bundle::windows::util] https://go.microsoft.com/fwlink/p/?LinkId=2124703
Debug [ureq::stream] connecting to go.microsoft.com:443 at [2600:1406:2e00:895::2c1a]:443
Debug [rustls::client::hs] No cached session for DnsName("go.microsoft.com")
Debug [rustls::client::hs] Not resuming any session
Debug [rustls::client::hs] Using ciphersuite TLS13_AES_256_GCM_SHA384
Debug [rustls::client::tls13] Not resuming
Debug [rustls::client::tls13] TLS1.3 encrypted extensions: [ServerNameAck, Unknown(UnknownExtension { typ: EllipticCurves, payload: 00040017001d })]
Debug [rustls::client::hs] ALPN protocol is None
Debug [ureq::stream] created stream: Stream(RustlsStream)
Debug [ureq::unit] sending request GET https://go.microsoft.com/fwlink/p/?LinkId=2124703
Debug [ureq::unit] writing prelude: GET /fwlink/p/?LinkId=2124703 HTTP/1.1
Host: go.microsoft.com
User-Agent: ureq/2.10.1
Accept: */*
accept-encoding: gzip
Debug [ureq::response] zero-length body returning stream directly to pool
Debug [ureq::pool] adding stream to pool: https|go.microsoft.com|443 -> Stream(RustlsStream)
Debug [ureq::unit] response 301 to GET https://go.microsoft.com/fwlink/p/?LinkId=2124703
Debug [ureq::unit] redirect 301 https://go.microsoft.com/fwlink/p/?LinkId=2124703 -> https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/3aa91245-82ae-4367-bbc2-c8d7a8fc1730/MicrosoftEdgeWebview2Setup.exe
Debug [ureq::stream] connecting to msedge.sf.dl.delivery.mp.microsoft.com:443 at 115.231.143.74:443
Debug [rustls::client::hs] No cached session for DnsName("msedge.sf.dl.delivery.mp.microsoft.com")
Debug [rustls::client::hs] Not resuming any session
Debug [rustls::client::hs] ALPN protocol is None
Debug [rustls::client::hs] Using ciphersuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
Debug [rustls::client::tls12::server_hello] Server supports tickets
Debug [rustls::client::tls12] ECDHE curve is EcParameters { curve_type: NamedCurve, named_group: X25519 }
Debug [rustls::client::tls12] Server DNS name is DnsName("msedge.sf.dl.delivery.mp.microsoft.com")
Debug [ureq::stream] created stream: Stream(RustlsStream)
Debug [ureq::unit] sending request GET https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/3aa91245-82ae-4367-bbc2-c8d7a8fc1730/MicrosoftEdgeWebview2Setup.exe
Debug [ureq::unit] writing prelude: GET /filestreamingservice/files/3aa91245-82ae-4367-bbc2-c8d7a8fc1730/MicrosoftEdgeWebview2Setup.exe HTTP/1.1
Host: msedge.sf.dl.delivery.mp.microsoft.com
User-Agent: ureq/2.10.1
Accept: */*
accept-encoding: gzip
Debug [ureq::response] Streaming body until content-length: 1655248
Debug [ureq::unit] response 200 to GET https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/3aa91245-82ae-4367-bbc2-c8d7a8fc1730/MicrosoftEdgeWebview2Setup.exe
Debug [ureq::pool] adding stream to pool: https|msedge.sf.dl.delivery.mp.microsoft.com|443 -> Stream(RustlsStream)
Debug [ureq::stream] dropping stream: Stream(RustlsStream)
Debug [ureq::stream] dropping stream: Stream(RustlsStream)
Debug [handlebars::render] Rendering value: Path(Relative(([Named("product_name")], "product_name")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("upgrade_code")], "upgrade_code")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("manufacturer")], "manufacturer")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("version")], "version")))
Debug [handlebars::render] Rendering helper: "if", params: [PathAndJson { relative_path: Some("allow_downgrades"), value: Context(Bool(true), ["allow_downgrades"]) }], hash: {}
Debug [handlebars::render] Rendering helper: "if", params: [PathAndJson { relative_path: Some("banner_path"), value: Missing }], hash: {}
Debug [handlebars::render] Rendering helper: "if", params: [PathAndJson { relative_path: Some("dialog_image_path"), value: Missing }], hash: {}
Debug [handlebars::render] Rendering helper: "if", params: [PathAndJson { relative_path: Some("license"), value: Missing }], hash: {}
Debug [handlebars::render] Rendering value: Path(Relative(([Named("icon_path")], "icon_path")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("manufacturer")], "manufacturer")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("product_name")], "product_name")))
Debug [handlebars::render] Rendering helper: "unless", params: [PathAndJson { relative_path: Some("license"), value: Missing }], hash: {}
Debug [handlebars::render] Rendering value: Path(Relative(([Named("manufacturer")], "manufacturer")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("product_name")], "product_name")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("product_name")], "product_name")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("product_name")], "product_name")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("manufacturer")], "manufacturer")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("product_name")], "product_name")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("path_component_guid")], "path_component_guid")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("app_exe_source")], "app_exe_source")))
Debug [handlebars::render] Rendering helper: "each", params: [PathAndJson { relative_path: Some("binaries"), value: Context(Array [], ["binaries"]) }], hash: {}
Debug [handlebars::render] Rendering helper: "if", params: [PathAndJson { relative_path: Some("enable_elevated_update_task"), value: Missing }], hash: {}
Debug [handlebars::render] Rendering value: Path(Relative(([Named("resources")], "resources")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("product_name")], "product_name")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("product_name")], "product_name")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("manufacturer")], "manufacturer")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("product_name")], "product_name")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("bundle_id")], "bundle_id")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("manufacturer")], "manufacturer")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("product_name")], "product_name")))
Debug [handlebars::render] Rendering helper: "each", params: [PathAndJson { relative_path: Some("merge_modules"), value: Context(Array [], ["merge_modules"]) }], hash: {}
Debug [handlebars::render] Rendering helper: "each", params: [PathAndJson { relative_path: Some("resource_file_ids"), value: Context(Array [String("I84efb96b5c874c3d9d6ff920f621fdf4"), String("Iead03a09e20d486f8cc1373739363419"), String("Id3c69a1eae8e4a54ab3b0671a28c3745"), String("Ic04adf9282464c14858030af4aedd8e7"), String("I70bd3fad9cc64a2cb2ce44dbea69fabe"), String("I1c7a0712898f44ababcf1c306dd99fea"), String("I056ec69671ff448786d718bba24444d6"), String("I83366682df0e4122b224ecbcf5a6b185")], ["resource_file_ids"]) }], hash: {}
Debug [handlebars::render] Rendering value: Path(Relative(([Named("resource_file_id")], "resource_file_id")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("resource_file_id")], "resource_file_id")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("resource_file_id")], "resource_file_id")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("resource_file_id")], "resource_file_id")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("resource_file_id")], "resource_file_id")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("resource_file_id")], "resource_file_id")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("resource_file_id")], "resource_file_id")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("resource_file_id")], "resource_file_id")))
Debug [handlebars::render] Rendering helper: "if", params: [PathAndJson { relative_path: Some("enable_elevated_update_task"), value: Missing }], hash: {}
Debug [handlebars::render] Rendering helper: "each", params: [PathAndJson { relative_path: Some("binaries"), value: Context(Array [], ["binaries"]) }], hash: {}
Debug [handlebars::render] Rendering helper: "each", params: [PathAndJson { relative_path: Some("component_group_refs"), value: Context(Array [], ["component_group_refs"]) }], hash: {}
Debug [handlebars::render] Rendering helper: "each", params: [PathAndJson { relative_path: Some("component_refs"), value: Context(Array [], ["component_refs"]) }], hash: {}
Debug [handlebars::render] Rendering helper: "each", params: [PathAndJson { relative_path: Some("feature_group_refs"), value: Context(Array [], ["feature_group_refs"]) }], hash: {}
Debug [handlebars::render] Rendering helper: "each", params: [PathAndJson { relative_path: Some("feature_refs"), value: Context(Array [], ["feature_refs"]) }], hash: {}
Debug [handlebars::render] Rendering helper: "each", params: [PathAndJson { relative_path: Some("merge_refs"), value: Context(Array [], ["merge_refs"]) }], hash: {}
Debug [handlebars::render] Rendering helper: "if", params: [PathAndJson { relative_path: Some("install_webview"), value: Context(Bool(true), ["install_webview"]) }], hash: {}
Debug [handlebars::render] Rendering helper: "if", params: [PathAndJson { relative_path: Some("download_bootstrapper"), value: Missing }], hash: {}
Debug [handlebars::render] Rendering helper: "if", params: [PathAndJson { relative_path: Some("webview2_bootstrapper_path"), value: Context(String("D:\\Project\\sanqingniao-sdk-server\\src-tauri\\target\\x86_64-pc-windows-msvc\\release\\wix\\x64\\MicrosoftEdgeWebview2Setup.exe"), ["webview2_bootstrapper_path"]) }], hash: {}
Debug [handlebars::render] Rendering value: Path(Relative(([Named("webview2_bootstrapper_path")], "webview2_bootstrapper_path")))
Debug [handlebars::render] Rendering value: Path(Relative(([Named("webview_installer_args")], "webview_installer_args")))
Debug [handlebars::render] Rendering helper: "if", params: [PathAndJson { relative_path: Some("webview2_installer_path"), value: Missing }], hash: {}
Debug [handlebars::render] Rendering helper: "if", params: [PathAndJson { relative_path: Some("enable_elevated_update_task"), value: Missing }], hash: {}
Running [tauri_bundler::bundle::windows::msi] candle for "main.wxs"
Running [tauri_bundler::bundle::common] Command `C:\Users\WORK\AppData\Local\tauri\WixTools314\candle.exe -arch x64 main.wxs -dSourceDir=D:\Project\sanqingniao-sdk-server\src-tauri\target\x86_64-pc-windows-msvc\release\sanqingniaosdk-server.exe`
Windows Installer XML Toolset Compiler version 3.14.1.8722
Copyright (c) .NET Foundation and contributors. All rights reserved.
main.wxs
D:\Project\sanqingniao-sdk-server\src-tauri\target\x86_64-pc-windows-msvc\release\wix\x64\main.wxs(108) : error CNDL0006 : The File/@Source attribute's value cannot be an empty string. If a value is not required, simply remove the entire attribute.
D:\Project\sanqingniao-sdk-server\src-tauri\target\x86_64-pc-windows-msvc\release\wix\x64\main.wxs(108) : error CNDL0027 : The File/@Source attribute's value, '', is not a valid long name because it contains illegal characters. Legal long names contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: \ ? | > < : / * ".
candle.exe : error CNDL0001 : 值不能为 null。
参数名: longName
Exception Type: System.ArgumentNullException
Stack Trace:
在 Microsoft.Tools.WindowsInstallerXml.CompilerCore.GenerateShortName(String longName, Boolean keepExtension, Boolean allowWildcards, String[] args)
在 Microsoft.Tools.WindowsInstallerXml.Compiler.ParseFileElement(XmlNode node, String componentId, String directoryId, Int32 diskId, String sourcePath, String& possibleKeyPath, Boolean win64Component, String componentGuid)
在 Microsoft.Tools.WindowsInstallerXml.Compiler.ParseComponentElement(XmlNode node, ComplexReferenceParentType parentType, String parentId, String parentLanguage, Int32 diskId, String directoryId, String srcPath)
在 Microsoft.Tools.WindowsInstallerXml.Compiler.ParseDirectoryRefElement(XmlNode node)
在 Microsoft.Tools.WindowsInstallerXml.Compiler.ParseProductElement(XmlNode node)
在 Microsoft.Tools.WindowsInstallerXml.Compiler.ParseWixElement(XmlNode node)
在 Microsoft.Tools.WindowsInstallerXml.Compiler.Compile(XmlDocument source)
在 Microsoft.Tools.WindowsInstallerXml.Tools.Candle.Run(String[] args)
在 Microsoft.Tools.WindowsInstallerXml.Tools.Candle.Run(String[] args)
failed to bundle project: error running candle.exe: `failed to run C:\Users\WORK\AppData\Local\tauri\WixTools314\candle.exe`
failed to bundle project: error running candle.exe: `failed to run C:\Users\WORK\AppData\Local\tauri\WixTools314\candle.exe`
Error [tauri_cli_node] failed to bundle project: error running candle.exe: `failed to run C:\Users\WORK\AppData\Local\tauri\WixTools314\candle.exe`
Additional context
No response
FabianLars commented
I think you need to set the installer lanaguage to zh-cn (either hardcoded in that template, or via tauri.conf.json) to use chinese symbols there 🤔
dunkyl commented
Is the posted main.wxs from target\x86_64-pc-windows-msvc\release\wix\x64\main.wxs
? It looks like the paste is from tauri's source template, rather than the generated one.
FabianLars commented
Tauri's source template doesn't contain chinese characters so i assume this is their modified template https://v2.tauri.app/distribute/windows-installer/#installer-template - a generated one wouldn't contain the {{abc}}
fields anymore, you're right about that.