Wix Visual Studio项目生成MSI名称异常,需添加$(Platform)变量
Wix项目MSI输出名称不生效的原因及解决方法
问题原因
- 仅通过标签设置输出名称不够,Wix项目的MSI最终命名受项目文件的OutputName属性和WiX构建逻辑共同控制。若未在.wixproj中明确覆盖默认配置,系统会优先使用项目名称作为MSI的基础名称。
- 若你是在Visual Studio项目属性界面设置的输出名称,可能未同步修改项目文件的对应配置,导致设置未被构建逻辑读取。
解决步骤
1. 修改Wix项目文件(.wixproj)
直接编辑.wixproj文件,找到<PropertyGroup>节点,添加或修改OutputName属性,嵌入$(Platform)变量:
<PropertyGroup> <OutputName>自定义安装包名称_$(Platform)</OutputName> <OutputType>msi</OutputType> </PropertyGroup>
这个配置会直接替换项目名称,作为MSI文件的基础命名。
2. 同步WiX Product元素配置(可选)
如果需要安装界面显示的名称和MSI文件名保持一致,在.wxs文件的<Product>元素中引用OutputName变量:
<Product Id="*" Name="$(var.OutputName)" Language="1033" Version="1.0.0.0" Manufacturer="你的厂商名称" UpgradeCode="固定的升级GUID">
3. 命令行构建的额外配置
若使用蜡烛(candle.exe)和光(light.exe)手动构建,需在light命令中指定-out参数并带上$(Platform):
light.exe -out "自定义安装包名称_$(Platform).msi" 编译后的文件.wixobj
内容的提问来源于stack exchange,提问作者Anandu Ramachandran
相关产品推荐
相关产品推荐

