如何用React-Native for Windows构建可局域网部署的自包含应用?
React Native for Windows 局域网自包含应用构建部署方案
前置环境校验
- 确保本地React Native for Windows(RNW)项目版本在0.68及以上稳定版,开发机安装Visual Studio 2022时已勾选「使用C++的桌面开发」「通用Windows平台开发」「MSIX打包工具」三个工作负载,缺任何一个组件打包阶段都会报莫名其妙的错误。
- 提前确认局域网内目标设备的系统版本:最低支持Win10 1809,低于这个版本的系统跑不了RNW应用,提前统计好避免白打包。
自包含包配置与构建
- 打开RNW项目下的
windows\<你的项目名称>.sln解决方案,顶部配置栏切换到Release模式,目标架构优先选x64,如果有32位设备需求额外打x86包即可,非ARM设备不用打ARM架构包。 - 右键解决方案资源管理器里的应用项目节点,选择「发布」->「创建应用包」:
- 分发渠道选「旁加载」,绝对不要选微软商店分发选项,不需要走公网上架流程。
- 下一步到签名配置页,直接选择「自动生成测试证书」,设置好证书密码留存即可;如果是公司域环境,也可以直接用内部CA签发的代码签名证书,后续域内设备不需要手动信任证书。
- 发布配置环节必须选「自包含」部署模式,不要选框架依赖模式——框架依赖模式要求目标设备提前安装对应版本的VC运行库、WinUI运行时,自包含模式会把所有运行依赖全部打进安装包,不需要目标设备提前装任何组件。
- 按内部迭代规则填写版本号,勾选「自动递增版本号」省掉后续每次发版手动改版本的麻烦。
- 点击「创建」等待构建完成,输出的安装包默认存放在
windows\<你的项目名称>\AppPackages目录下。
校验是否为真正的自包含包:构建完成后如果目录下存在独立的
Dependencies文件夹且里面放了VC运行库、WinUI的独立安装包,说明之前的部署模式选错了,回到发布配置页重新选自包含模式重新构建即可,正确的自包含包不会有额外需要单独安装的依赖项。
局域网部署操作
- 将整个
AppPackages文件夹上传到局域网内部共享文件服务器,给所有需要安装的设备账号开只读访问权限即可。 - 证书信任配置:如果是用自动生成的测试证书签的包,第一次安装前需要把证书导入到目标设备的「本地计算机 - 受信任的根证书颁发机构」存储中,否则Windows会拦截未受信任的包不让安装;域环境下直接通过组策略把证书推送给所有域内设备,一次性配置完不用每台手动操作。
- 安装方式:直接在目标设备上访问共享目录,右键点击目录下的
Install.ps1选择「使用PowerShell运行」即可自动完成安装,安装完成后可以直接在开始菜单找到应用,和普通原生桌面应用使用体验完全一致;也可以手动在PowerShell中执行安装命令:Add-AppxPackage -Path <共享路径下的.msixbundle文件全路径> - 后续版本更新:每次发新版打包时保证版本号高于旧版,把新的包放到共享目录即可,可以在应用内加简单的本地共享路径版本检测逻辑,启动时检测到新版本就提示用户升级,域环境也可以直接通过组策略推送MSIX包强制更新,不需要逐台设备操作。
特殊场景兼容
如果部分老设备配置了禁止MSIX旁加载的组策略,可以额外用Inno Setup或者WiX工具把MSIX包封装成传统exe安装包,提前把证书信任、静默安装的逻辑写进安装脚本,用户双击exe就能走完所有安装流程,不需要额外操作。
内容的提问来源于stack exchange,提问作者Idan Krupnik
相关产品推荐
相关产品推荐

