1

If I try to extract a certain file:

lessmsi x windows%20sdk%20desktop%20libs%20x64-x86_en-us.msi

I get this message:

Error: System.Exception: The file
"C:\sdk\58314d0646d7e1a25e97c902166c3155.cab" does not exist.

Fair enough, but does LessMsi or some other tool have a way to list all the files that are required?

Zombo
  • 1

2 Answers2

1

This seems to do it:

lessmsi l -t Component sunday.msi | sed '
/dirCatalogRepositoryDirectory/!d
s/sca//
s/,.*//
'
Zombo
  • 1
1

Here is another way to do this, using Python:

import msilib
path = 'Windows SDK for Windows Store Apps Headers-x86_en-us.msi'
db = msilib.OpenDatabase(path, msilib.MSIDBOPEN_DIRECT)
view = db.OpenView('SELECT * FROM Media')
view.Execute(None)

while True: rec = view.Fetch() if rec is None: break cabinet = rec.GetString(4) print(cabinet)

https://docs.microsoft.com/windows/win32/msi/media-table

Zombo
  • 1