Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Generate Reports on MSI Files


5 replies to this topic

jlcollie

jlcollie
  • Members
  • 2 posts

Posted 04 November 2003 - 21:54

Are there any 3rd party tools (not a full fledge MSI editor or packager) that can generate tab or comma delimmited reports on the contents of a MSI package? I'm looking for something that would be friendly to the user and that creates clean reports.

Thanks,

Petch

Petch
  • Members
  • 35 posts

Posted 05 November 2003 - 10:41

SQL. Maybe you could run queries using WiRunSQL.vbs and output to a text file.

dbareis

dbareis
  • Full Members
  • 85 posts

Posted 06 November 2003 - 04:53

Orca can export selected/all tables in IDT format which is a delimited format, if you want something more readable/automated you could use my "MSIDIFF" tool that is currently bundled with me free MAKEMSI tool (http://www.labyrinth...eis/makemsi.htm).
---
Dennis Bareis (dbareis@No.Spam.gmail.com)
Free MSI update/creation tool (MAKEMSI):
http://users.cyberon...eis/makemsi.htm

Glytzhkof

Glytzhkof
  • Moderators
  • 1,447 posts

Posted 06 November 2003 - 08:28

If what you need is a list of components in the project, I adapted a script originally created by Senior Trainer Robert Dicau from Installshield so that it exports all components into an Excel sheet. It is a VBA script. If this is of interest I can dig up the code and post it here.
Regards
-Stein Åsmul

jlcollie

jlcollie
  • Members
  • 2 posts

Posted 06 November 2003 - 20:26

Glytzhkof

I would like to see the VBA script which exports all components to Excel.

Thanks,

Glytzhkof

Glytzhkof
  • Moderators
  • 1,447 posts

Posted 07 November 2003 - 02:38

CODE

Const TheInstallshieldProject = "C:\BasicMSI.ism"
Const TheExcelSheet = "C:\sheet.xls"
Dim aComponentCollection, oneComponent, oneInstallshieldProject, TheFiles, i
Dim oneExcelApp, oneExcelBook, oneExcelSheet, oneExcelRange, columnRange

Set oneExcelApp = CreateObject("Excel.Application")
Set oneExcelBook = oneExcelApp.Workbooks.Open(TheExcelSheet)
Set oneExcelSheet = oneExcelBook.Worksheets.Add
   oneExcelSheet.Name =  V_MAJOR & "-" & V_MINOR  & "-" & V_BUILD
Set oneInstallshieldProject = CreateObject ("ISWiAutomation.ISWiProject")
   oneInstallshieldProject.OpenProject TheInstallshieldProject

Set oneExcelRange = oneExcelSheet.Cells(1,1)
   oneExcelRange.Value = "Component"
   oneExcelRange.Font.Bold = True
Set oneExcelRange = oneExcelSheet.Cells(1,2)
   oneExcelRange.Value = "Files                                              "
   oneExcelRange.Font.Bold = True
Set oneExcelRange = oneExcelSheet.Cells(1,3)
   oneExcelRange.Value = "Destination"
   oneExcelRange.Font.Bold = True

Set aComponentCollection = oneInstallshieldProject.ISWiComponents
i = 1

For Each oneComponent In aComponentCollection
   ' Count lines to set correct range
   i = i + 1
   Set oneExcelRange = oneExcelSheet.Cells(i,1)
   oneExcelRange.Value = CStr(oneComponent.Name)
   Set oneExcelRange = oneExcelSheet.Cells(i,2)

   Set oneFileCollection = oneComponent.ISWiFiles
   For Each oneFile In oneFileCollection
      TheFiles = TheFiles + oneFile.Name + vbLf
   Next

   oneExcelRange.Value = TheFiles

   TheFiles = ""

   Set oneExcelRange = oneExcelSheet.Cells(i,3)
   oneExcelRange.Value = CStr(oneComponent.Destination)
Next

oneExcelApp.Cells.EntireColumn.AutoFit

oneInstallshieldProject.CloseProject
Set oneInstallshieldProject = Nothing

oneExcelBook.Save
oneExcelApp.Quit
Set oneExcelApp = Nothing

Regards
-Stein Åsmul