验证MSI文件和_Validation表

时间:2019-02-27 19:20:31

标签: windows-installer

_Validation表的文档指定该表不应包含在出厂的安装程序数据库中,但是msival2.exeOrca随附的ICE测试要求该表存在。

我怀疑在运行验证套件之前,我必须合并包含所有标准表和填充的_Validation表的MSM,但这有很多缺点:

  • 仅支持标准表
  • 如果出厂的MSI中缺少标准表,则不会标记错误
  • 需要在验证之前修改Installer数据库

我应该忽略建议,还是将_Validation表放入MSI版本中,还是有更好的方法?

2 个答案:

答案 0 :(得分:0)

  

简短的回答,只需忽略它,然后留在那儿。是正常的。

验证表 _Validation table 是系统表,编译后无需执行任何特殊操作您的MSI。只需将其保留为Orca中显示的表格即可。我们需要Rob Mensching WiX创建者自己也写过 Orca )来验证此表是否实际上是在打开MSI文件时生成的,但这只是语义-别管它了。

系统表 :实际上有几个这样的系统表临时表 {{ 1}} _Columns _Streams _Storages _Tables _TransformView _Validation ),它们根本不会在Orca中显示(但有些它们确实出现在其他一些MSI编辑器中)。 您通常不应该混入任何这些系统表

您看到的是特定问题吗?包括一些链接以防万一:

答案 1 :(得分:0)

关于该建议,SDK通常是错误/被忽略的。我认识的每个MSI都附带有验证表,对第三方MSI的第一次评估是经常要查看表并运行验证。