installation - 尝试在 Wix 中使用 EnsureTable 修复验证错误

标签 installation wix windows-installer merge-module

当我尝试使用 msvbvm60.msm 时,我在 Wix 3.0 中遇到了许多错误。合并模块:

C:\[...]: error LGHT0204 : ICE03: Table: Registry Column: Registry Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Registry Column: Root Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Registry Column: Key Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Registry Column: Name Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Registry Column: Value Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Registry Column: Component_ Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Extension Column: Extension Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Extension Column: Component_ Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Extension Column: ProgId_ Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Extension Column: MIME_ Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Extension Column: Feature_ Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: MIME Column: ContentType Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: MIME Column: Extension_ Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: MIME Column: CLSID Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Class Column: CLSID Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Class Column: Context Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Class Column: Component_ Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Class Column: ProgId_Default Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Class Column: Description Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Class Column: AppId_ Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Class Column: FileTypeMask Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Class Column: Icon_ Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Class Column: IconIndex Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Class Column: DefInprocHandler Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Class Column: Argument Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Class Column: Feature_ Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Class Column: Attributes Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: ProgId Column: ProgId Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: ProgId Column: ProgId_Parent Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: ProgId Column: Class_ Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: ProgId Column: Description Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: ProgId Column: Icon_ Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: ProgId Column: IconIndex Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Verb Column: Extension_ Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Verb Column: Verb Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Verb Column: Sequence Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Verb Column: Command Missing specifications in _Validation Table (or Old Database)
C:\[...]: error LGHT0204 : ICE03: Table: Verb Column: Argument Missing specifications in _Validation Table (or Old Database)

我在某处读到我可以使用 EnsureTable为了解决这个问题,所以我尝试添加 <EnsureTable Id="Key" /> 作为测试。至Product 。这导致我收到错误:

C:\Users...(28):错误 LGHT0094:未解析对“Product:[GUID]”部分中符号“WixCustomTable:Key”的引用。

有什么建议吗?

最佳答案

EnsureTable/@Id 应引用您想要拉入的表。在您的情况下,您需要:

<EnsureTable Id="Registry"/>
<EnsureTable Id="Extension"/>
<EnsureTable Id="MIME"/>

等等。这样做的目的是确保 WiX 工具集在合并模块引入不带 _Validation 表条目的表定义之前,引入其表定义以及相应的 _Validation 表条目。

PS:根本原因是您正在使用的合并模块不符合规范。您可能会通知您从其那里获得合并模块的人,他们正在生产被破坏的东西(是的,我知道这可能是微软)。

关于installation - 尝试在 Wix 中使用 EnsureTable 修复验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/461907/

相关文章:

linux - Node.js 安装错误

linux - 如何安装memusg Linux工具

c# - 构建已退出,代码为 1

Wix 包含文件 (.wxi) 引发异常

installation - 为什么 MSI 需要原始 .msi 文件才能继续卸载?

wix - WIX 中的条件属性失败导致整个 MSI 作业失败

c# - 在 VS2010 中安装/卸载 MSI 之前运行自定义脚本

linux - 一般在 Linux 中创建菜单项

WIX:将文件复制到另一个分区中的自定义目录

properties - msiexec 不会将参数传递给自定义操作