Skip to content

Commit

Permalink
fix(bundler): ensure that there are no duplicate extension arguments …
Browse files Browse the repository at this point in the history
…during bundling on Windows (fix tauri-apps#6103)
  • Loading branch information
biaocy committed May 9, 2023
1 parent 2659ca1 commit 5949361
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions tooling/bundler/src/bundle/windows/msi/wix.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ use log::info;
use regex::Regex;
use serde::{Deserialize, Serialize};
use std::{
collections::{BTreeMap, HashMap},
collections::{BTreeMap, HashMap, HashSet},
fs::{create_dir_all, read_to_string, remove_dir_all, rename, write, File},
io::Write,
path::{Path, PathBuf},
Expand Down Expand Up @@ -357,10 +357,6 @@ fn run_light(
let light_exe = wix_toolset_path.join("light.exe");

let mut args: Vec<String> = vec![
"-ext".to_string(),
"WixUIExtension".to_string(),
"-ext".to_string(),
"WixUtilExtension".to_string(),
"-o".to_string(),
display_path(output_path),
];
Expand Down Expand Up @@ -735,9 +731,15 @@ pub fn build_wix_app_installer(
candle_inputs.push((fragment_path, extensions));
}

let mut fragment_extensions = Vec::new();
let mut fragment_extensions = HashSet::new();
//Default extensions
fragment_extensions.insert(wix_toolset_path.join("WixUIExtension.dll"));
fragment_extensions.insert(wix_toolset_path.join("WixUtilExtension.dll"));

for (path, extensions) in candle_inputs {
fragment_extensions.extend(extensions.clone());
for ext in &extensions {
fragment_extensions.insert(ext.clone());
}
run_candle(settings, wix_toolset_path, &output_path, path, extensions)?;
}

Expand Down Expand Up @@ -816,7 +818,7 @@ pub fn build_wix_app_installer(
wix_toolset_path,
&output_path,
arguments,
&fragment_extensions,
&(fragment_extensions.clone().into_iter().collect()),
&msi_output_path,
)?;
rename(&msi_output_path, &msi_path)?;
Expand Down

0 comments on commit 5949361

Please sign in to comment.