diff --git a/.changes/issue-4723.md b/.changes/issue-4723.md new file mode 100644 index 000000000..6a375d288 --- /dev/null +++ b/.changes/issue-4723.md @@ -0,0 +1,5 @@ +--- +"tauri-codegen": patch +--- + +Fix relative paths in `version` field of `tauri.config.json` not being correctly parsed by `generate_context!()`. diff --git a/core/tauri-codegen/src/lib.rs b/core/tauri-codegen/src/lib.rs index b0c4d0b73..a1027c126 100644 --- a/core/tauri-codegen/src/lib.rs +++ b/core/tauri-codegen/src/lib.rs @@ -64,5 +64,14 @@ pub fn get_config(path: &Path) -> Result<(Config, PathBuf), CodegenConfigError> json_patch::merge(&mut config, &merge_config); } - Ok((serde_json::from_value(config)?, parent)) + let old_cwd = std::env::current_dir().map_err(CodegenConfigError::CurrentDir)?; + // Set working directory to where `tauri.config.json` is, so that relative paths in it are parsed correctly. + std::env::set_current_dir(parent.clone()).map_err(CodegenConfigError::CurrentDir)?; + + let config = serde_json::from_value(config)?; + + // Reset workding directory. + std::env::set_current_dir(old_cwd).map_err(CodegenConfigError::CurrentDir)?; + + Ok((config, parent)) }