我是 Wix 的初学者,我们正在尝试从 Installshield 迁移到 Wix。但是我遇到了无法解决的错误。在发布此消息之前,我已经在网上完成了我的研究,我希望从你们的专家那里得到一些帮助,以防万一有人遇到类似的问题,并愿意指出我在这里犯的愚蠢错误。
这是我的 Wix 包含文件:properties.wxi
<Include>
<?define Language="1033"?>
<?define Manufacturer="ABC Inc"?>
<?define Name="TRIAL-MSI"?>
<?define UpgradeCode="....GUID...."?>
<?define Version="09.00.0021"?>
<?define Comments="Contact: team@abc.com"?>
<?define Description="TRIAL Application"?>
</Include>
我在代码中调用它,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include properties.wxi ?>
<Product Id="*"
Name="${var.Name}"
Language="${var.Language}"
Manufacturer="${var.Manufacturer}"
UpgradeCode="${var.UpgradeCode}"
Version="${var.Version}" >
<Package Comments="${var.Contact}"
Description="${var.Description}"
InstallerVersion="200"
Keywords="Installer,MSI,Database"
Languages="${var.Language}"
Manufacturer="${var.Manufacturer}"
Compressed="yes"
Platform="x86" />
我正在命令行上编译我的脚本:
candle -arch x86 -I properties.wxi trial.wxs
我不断收到如下错误:
错误 CNDL0048:文档元素名称“Include”无效。 Windows Installer XML 源文件必须使用“Wix”作为文档元素名称。源跟踪:
我猜因为 Candle 不接受包含文件,它会抛出异常:
错误 CNDL0008:Product/@Language 属性的值“${var.Language}”不是合法的整数值。
有人可以帮我解决这个问题吗?非常感谢任何帮助。
最佳答案
我在将 wxs
文件迁移到 wxi
时遇到此错误
在 Visual Studio 中将文件 Build Action
属性从 Compile
设置为 Content
修复了该问题。
关于Wix 包含文件 (.wxi) 引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9775669/