You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在搭配SvelteKit的Tauri应用中集成外部应用包?

如何在Tauri + SvelteKit应用中打包并自动安装外部应用(Mechdyne TGX Receiver)

1. 准备外部安装包

将Mechdyne TGX Receiver的安装程序(如Windows平台的.exe/.msi)放到Tauri项目的src-tauri/resources目录下,若没有该目录则手动创建。

2. 配置Tauri打包资源

修改src-tauri/tauri.conf.json的build字段,将外部安装程序纳入打包资源列表,确保打包时会将其复制到应用输出目录:

"build": {
  "beforeBuildCommand": "npm run build",
  "beforeDevCommand": "npm run dev",
  "devPath": "http://localhost:5173",
  "distDir": "../dist",
  "resources": ["resources/tgx-installer.exe"]
}

3. 添加自动安装逻辑

通过Tauri的Shell插件实现应用首次启动时的安装检查与执行:

  • 先安装Shell插件:
npm install @tauri-apps/plugin-shell
  • 在src-tauri/src/main.rs中编写逻辑,检查TGX Receiver是否已安装,未安装则自动启动安装程序:
use tauri::Manager;
use tauri_plugin_shell::ShellExt;

fn main() {
  tauri::Builder::default()
    .plugin(tauri_plugin_shell::init())
    .setup(|app| {
      // 获取打包后安装程序的路径
      let tgx_installer_path = app.path_resolver()
        .resolve_resource("tgx-installer.exe")
        .expect("无法找到TGX安装程序");

      // 检查TGX是否已安装(示例:根据默认安装路径判断,可替换为注册表检查逻辑)
      let tgx_is_installed = std::path::Path::new("C:/Program Files/Mechdyne/TGX Receiver/TGXReceiver.exe").exists();

      if !tgx_is_installed {
        // 启动安装程序,若支持静默安装可添加参数(如"/silent")
        app.shell()
          .execute(tgx_installer_path.to_str().unwrap(), &["/silent"])
          .expect("启动TGX安装程序失败");
      }

      Ok(())
    })
    .run(tauri::generate_context!())
    .expect("运行Tauri应用出错");
}

4. 关键注意事项

  • 权限处理:若TGX安装需要管理员权限,需确保你的Tauri应用请求管理员权限(可在tauri.conf.json的tauri.windows.security中配置requestedExecutionLevel为requireAdministrator)。
  • 跨平台适配:若需支持macOS/Linux,需替换对应格式的安装包,并调整路径判断与启动逻辑。
  • 静默安装:优先使用TGX安装程序的静默参数,避免安装过程中弹出交互窗口提升用户体验。

内容的提问来源于stack exchange,提问作者Gulam Gaus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 09:29:55