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

Wix打包原生消息扩展:安装时如何插入变量替换JSON路径?

问题描述

使用Wix打包浏览器原生消息扩展时,需在应用目录下安装一份JSON配置文件,示例内容如下:

{
  "allowed_extensions": [ "ext@example.com" ],
  "description": "Native Extension",
  "name": "com.example.Native.Extension",
  "path": "c:\\path\\to\\application.exe",
  "type": "stdio"
}

需解决以下问题:

  • 如何配置Wix,在安装时将JSON中的"c:\\path\\to\\application.exe"替换为应用实际安装的完整路径?
  • 是否需要通过Wix变量插值实现该需求?
  • 若需使用Wix扩展,具体为哪款?
  • 能否通过本地化方式实现?
解决方案

1. 核心实现:Wix原生变量插值替换路径

不需要额外扩展,直接用Wix内置的变量插值功能即可完成路径替换:

  • 先准备JSON模板文件(如native-messaging-template.json),把固定路径替换为Wix内置变量[INSTALLFOLDER](代表应用安装目录):
{
  "allowed_extensions": [ "ext@example.com" ],
  "description": "Native Extension",
  "name": "com.example.Native.Extension",
  "path": "[INSTALLFOLDER]application.exe",
  "type": "stdio"
}
  • 在Wix项目的XML代码中,通过Component和File元素将模板文件安装到目标目录,Wix会自动解析并替换文件中的[变量名]占位符:
<ComponentGroup Id="NativeMessagingConfig" Directory="INSTALLFOLDER">
  <Component Id="NativeMessagingConfigFile" Guid="*">
    <File Source="src/native-messaging-template.json" 
          Name="native-messaging-config.json" 
          DiskId="1" 
          KeyPath="yes" />
  </Component>
</ComponentGroup>

2. 是否需要Wix扩展?

不需要。Wix原生支持文本文件内的[变量名]格式插值,无需额外安装扩展组件。

3. 本地化实现(多语言场景)

如果需要对JSON中的多语言字段(如description)做本地化处理,可结合Wix的本地化机制:

  • 修改JSON模板,将需要本地化的字段也替换为占位符:
{
  "allowed_extensions": [ "ext@example.com" ],
  "description": "[NativeExtensionDesc]",
  "name": "com.example.Native.Extension",
  "path": "[INSTALLFOLDER]application.exe",
  "type": "stdio"
}
  • 创建对应语言的本地化文件(如en-us.wxl、zh-cn.wxl),添加字段的多语言映射:
<!-- en-us.wxl -->
<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
  <String Id="NativeExtensionDesc">Native Extension</String>
</WixLocalization>

<!-- zh-cn.wxl -->
<WixLocalization Culture="zh-cn" xmlns="http://schemas.microsoft.com/wix/2006/localization">
  <String Id="NativeExtensionDesc">原生扩展</String>
</WixLocalization>
  • 在Wix项目中引用这些本地化文件,安装时会根据系统语言自动替换对应字段,同时路径变量[INSTALLFOLDER]的替换不受影响。

注意事项

  • 除了内置的INSTALLFOLDER,也可以通过Property元素自定义变量,格式同样为[变量名],Wix会统一解析替换。
  • 路径中的特殊字符会被Wix自动转义,无需手动修改JSON中的路径格式。

内容的提问来源于stack exchange,提问作者Graham Leggett

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 23:47:36