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

使用WIX生成的.msi安装包运行异常及修订号缺失问题求助

WIX生成MSI的问题解决方法

一、双击MSI报错,管理员CMD运行正常

核心原因是插件安装需要管理员权限,双击MSI默认以当前普通用户权限启动,无法完成写入系统目录、修改注册表等操作,而管理员CMD运行会直接获取高权限。解决方法:

  • 在WIX的<Product>元素中添加InstallPrivileges="elevated"属性,强制安装包启动时触发UAC权限请求,双击即可弹出权限提示,获取权限后正常安装:
    <Product Id="*" Name="YourAddin" Language="1033" Version="1.0.0.0" Manufacturer="YourCompany" UpgradeCode="YOUR-GUID-HERE" InstallPrivileges="elevated">
    
  • 检查自定义动作:如果安装序列中有自定义动作,确保需要高权限的动作设置Impersonate="no",避免模拟普通用户执行:
    <CustomAction Id="YourCustomAction" BinaryKey="YourBinary" DllEntry="YourEntry" Impersonate="no" Execute="deferred" />
    

二、添加MSI的修订号

MSI的修订号是版本号的第四段,格式为Major.Minor.Build.Revision,配置方式:

  • 直接在<Product>的Version属性中指定四位版本号,第四位就是修订号,比如:
    <Product ... Version="1.0.0.123" ...>
    
    修订号取值建议用构建次数或日期编码(需控制在0-65535之间,因为MSI版本每段最大为65535),比如用当日是本年的第几天,或持续递增的构建序号。
  • 自动生成修订号:可以通过WIX预处理器变量实现,编译时传入修订号:
    1. WIX代码中写:
      <Product ... Version="1.0.0.$(var.Revision)" ...>
      
    2. 编译时用candle命令传入:
      candle.exe -dRevision=123 YourProduct.wxs
      
    也可以结合MSBuild或CI工具自动生成修订号(比如用Git提交次数、时间戳转合法数值)。

内容的提问来源于stack exchange,提问作者Smit Rathod

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:27:54