1

The documentation for the _Validation table specifies that the table should not be included in shipped installer databases, but the ICE tests shipped with msival2.exe and Orca require the tables to be present.

I suspect that I have to merge a MSM containing all standard tables and a populated _Validation table prior to running the validation suite, but that has a lot of drawbacks:

  • only supports standard tables
  • doesn't flag an error if a standard table is missing in the shipped MSI
  • needs to modify the Installer database prior to validation

Should I just ignore the advice and ship my _Validation table inside the release MSI, or is there a better way?

Simon Richter
  • 26,160
  • 1
  • 38
  • 59

2 Answers2

0

Short answer, just ignore it and leave it in there. It is normal.

Validation Table: The _Validation table is a system table, you do not need to do anything special once you have compiled your MSI. Just leave it as it is with the table showing up in Orca. We would need Rob Mensching (WiX creator who also wrote Orca itself) to verify whether this table is actually generated on MSI file opening, but it is semantics - just leave it alone).

System Tables: There are actually several such system tables and temporary tables (_Columns, _Streams, _Storages, _Tables, _TransformView, _Validation, etc...), that do not show up in Orca at all (but some of them do show up in some other MSI editors). You should generally not meddle with any of these system tables.

Is there a specific problem you are seeing? Including some links just in case:

Stein Åsmul
  • 34,628
  • 23
  • 78
  • 140
  • I'm not using WiX, maybe I should. My generated MSIs fail validation because the `_Validation` table is missing, so I suspect it's not generated automatically, and I also dimly remember a merge module containing all table definitions as well as `_Validation`, `_Tables` and `_Columns`, which you could merge to get something verifiable (and if you got the schema wrong, it would fail to merge). – Simon Richter Feb 28 '19 at 05:27
  • What tool do you use? Orca itself? *Yes, I would recommend WiX if you need a free solution for creating your MSI*. I have [this ad-hoc description of MSI tools](https://stackoverflow.com/a/50229840/129130) that I send to people - both free and commercial. Not much, but there are further links in there to more thorough descriptions. I wouldn't want to spend time "manually" creating an MSI with so many tools available - uphill battle for an aging and mature technology. Here is my [ad-hoc WiX quick start suggestion](https://stackoverflow.com/a/25005864/129130) piece. Samples I link to are good. – Stein Åsmul Feb 28 '19 at 12:02
  • Oh, one more: my ad-hoc description of how to do a [Hello WiX compile in Visual Studio](https://stackoverflow.com/a/47972615/129130) - the inline comments in the markup at the bottom might be enough to get going ("*Sample Minimal WiX Source - Inline Comments*"). The minimum needed to get an MSI created after installing WiX and the Visual Studio integration (separate download at the same location as the main WiX setup). See WiX quick start link above. – Stein Åsmul Feb 28 '19 at 12:32
0

The SDK is generally wrong/ignored with regard to that advice. Every MSI I know is shipped with the validation table and it's not uncommon for my first evaluation of a third party MSI to be to review the tables and run validation.

Christopher Painter
  • 52,390
  • 6
  • 60
  • 97
  • Yes, I agree. The SDK must be wrong here, or the `_Validation table` must be generated on file open? Maybe from `_Columns`? Doesn't make that much sense... Who knows. In either case: just use an established tool I'd say and the `_Validation table` takes care of itself. Note that I used to fix errors in the `_Validation table` whilst doing application packaging. Erroneous type definition in some Wise-specific tables I think it was (to prevent some faulty error messages). So somehow it must be persisted? – Stein Åsmul Mar 03 '19 at 02:27