Hello all,

I'm looking for a way to figure out why figure out what files or configurations are missing from an MSI. I'm currently packaging Rapid Reader 6.0 that has a lot of prerequisites. In addtion to 4 other software pieces that come with this installation. But for now, I'd like to ask for help just on Rapid Reader.


First, the "Prequisites"
  1. Microsoft C++ Redistribuitable (aka vcredist_X86)
  2. IPP 5.1
  3. AccessDatabaseEngine 2007 Ex
  4. InstallSheild 11.50

I can install all these just fine before my attempt at Rapid Reader.

First, I looked into the Rapid.msi with Wise 7's Windows Installer Editor. I had to add a row in the Properties Table as such, (ISSETUPDRIVEN) with a vaule of "1". This bypasses the installation calling to run the vendor setup.exe. (wrapper)

Next, I can run the installation, the log does not catch any errors and it appears to be a success. But I've noticed that the shortcuts are missing from the Start-->Programs menu. When I go to launch the application for the installation directory, it appears to launch the EULA to which I click "Yes" but then it shuts down.

Now when I run the vendor setup.exe, Rapid Reader installs the shortcuts and I can only guess maybe which other files are missing from the MSI. At this point I looked at the Reader.msi and I looked at the "shortcuts" table and noticed nothing is there. (flag number 1)

I'm guessing the vendor has the additonal shortucts and (x) files being installed in the wrapper which I don't have access to see. I looked at the Reader.msi to check out the components in Wise Stuido and noticed some of those components are flagged in the color "red". I right clicked and viewed the details and noticed the File Key Path had <none> listed. So I clicked the dropdown and tried to assingn these components a File Key Path the save the MSI. After testing it again, I had the same issue.

Are there any suggestions on how I am suppose to find what else is missing from running the MSI vs the vendors wrapper? I
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
Enable the Windows Installer Logging policy, set it to verbose logging.
Install with the setup.exe.
Check the log(s) to see what public properties that the setup.exe passes to the MSI(s) during install.
Add them in a transform or pass it through the command line and see if that helps.
Answered 11/20/2009 by: AngelD
Red Belt

Please log in to comment
0
OK, I'll turn on voicewarmup and see what happens. (fingers crossed) I get cross eyed looking at those verbose logs but I don't have a choice here.

What I did ealier was statup process monitor, ran the vendors setup.exe and recorded the installation with VMWare Workstation while process monitor was on. I had to record it because somethings start and close so quickly I don't see what's going on. In this case, I can see it creating additonal services, installing drivers with Jungo (http://www.jungo.com/openrg/index.html) which appears to be a USB device drivers and kicking off a few other things such as wdreg.exe and NMSAcessU.exe. But it looks like it's using .NET to add some services such as Given.Win32.LogicalDevices.WindowsService.exe & Given.Win32.LogicalDevices.WindowsService.exe.

I guess I'll see if the log comes up with some better stuff.

Thanks,
Answered 11/20/2009 by: TheInfamousOne
Purple Belt

Please log in to comment
0
I always run a process "monitor" script to find out what external commands (including arguments) a setup performs.

'// Run the script like this to output it to a txt file:
'// cscript wmiProcessMonitor.vbs > processes.txt

WScript.Echo "Process Monitor (Win32_Process - Instance Creation Event)" & vbNewLine

Dim objWMIService : Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\.\root\cimv2")

Dim colMonitoredProcesses : Set colMonitoredProcesses = objWMIService. _
ExecNotificationQuery("select * from __instancecreationevent " _
& " within 1 where TargetInstance isa 'Win32_Process'")

Dim i, objLatestProcess, objProcess
i = 0
Do While i = 0
Set objLatestProcess = colMonitoredProcesses.NextEvent
WScript.Echo "Process created: " & objLatestProcess.TargetInstance.Name

Set objProcess = GetProcessObject(objLatestProcess.TargetInstance.Handle)
If Not(objProcess Is Nothing) Then
Call PrintProcessInfo(objProcess.Handle)
WScript.Echo ""
End If
Loop

Function GetProcessObject(Handle)
Set GetProcessObject = Nothing

Dim colProcess : Set colProcess = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process " _
& "WHERE Handle = '" & Handle & "'")

Dim objProcess
For Each objProcess In colProcess
Set GetProcessObject = objProcess
Next
End Function

Function GetProcessInfo(objProcess)
Dim Arguments : Arguments = ""
If Len("""" & objProcess.ExecutablePath & """") <> objProcess.CommandLine Then
'Arguments = Mid(objProcess.CommandLine, Len("""" & objProcess.ExecutablePath & """")+1)
End If
Arguments = objProcess.CommandLine

GetProcessInfo = "Name: " & objProcess.Name & " (" & objProcess.Handle & ")" & vbNewLine _
& vbTab & "ExecutablePath: " & objProcess.ExecutablePath & vbNewLine _
& vbTab & "Arguments: " & Arguments
End Function

Function PrintProcessInfo(Handle)
Dim objProcess : Set objProcess = GetProcessObject(Handle)

If Not(objProcess Is Nothing) Then
If objProcess.Handle = "0" Then Exit Function

Dim ProcessInfo : ProcessInfo = GetProcessInfo(objProcess)
Call PrintProcessInfo(objProcess.ParentProcessId)

WScript.Echo ProcessInfo
End If

End Function



You could always create a dummy msi with the same ProductName, ProductVersion, ProductCode & PackageCode as the original MSI and then replace it to capture what changes the setup.exe do.
Answered 11/21/2009 by: AngelD
Red Belt

Please log in to comment
0
Just a quick update. I've had no luck with turning on MSI loggin in the GPEDIT.msc. When I run the vendors setup.exe, it apparentaly uses InstallSheild to hook into the MSI. Simply put, no MSI.log file is being created in the C:\Windows\Temp directory even though InstallShield is hooking into a Reader.msi and running an installation.

I've tried to run the vendors silent swich which is

setup.exe /s /v/qn /f2"c:\temp\Reader.log"

When I do this, I get a ResultCode= -3 in the Reader.log I setup, which reads "Required data not found in the Setup.iss file."

If found the vendors iss file and ran the command line using these parameters to see if this worked.

Setup.exe /s /f1"C:\Reader\Reader.iss" /f2"C:\Reader\Reader6.log"

I still get a Result Code of -3.

So after donig some research, I've noticed some other threads said there were missing parameters in the iss file, I'm not sure if that's the case here. I've opened up the Reader.iss file and here is what I see but I really don't have a clue what I am looking at or able to tell if something is missing.

["{6BB7118D-3286-46F2-8101-230E0A40464F}"-DlgOrder]
Dlg0="{6BB7118D-3286-46F2-8101-230E0A40464F}"-SdWelcomeMaint-0
Count=3
Dlg1="{6BB7118D-3286-46F2-8101-230E0A40464F}"-MessageBox-0
Dlg2="{6BB7118D-3286-46F2-8101-230E0A40464F}"-SdFinish-0
["{6BB7118D-3286-46F2-8101-230E0A40464F}"-SdWelcomeMaint-0]
Result=303
["{6BB7118D-3286-46F2-8101-230E0A40464F}"-MessageBox-0]
Result=6
["{6BB7118D-3286-46F2-8101-230E0A40464F}"-SdFinish-0]
Result=1
bOpt1=0
bOpt2=0


Is there any documentation out there that guides me in what to do in this situation? It seems like I've just about ran every InstallSheild command line switch with no luck. As mentioned earlier, I can run prequisites and run the Reader.msi but the vendor has some additonal things going on in their wrapper.

AngelID, I try to use the script you provided, thank you!

I've tried to do a setup capture several times, but it deos not seem to capture everything, the appcliation failes when launched.
Answered 11/24/2009 by: TheInfamousOne
Purple Belt

Please log in to comment
0
I've had no luck with turning on MSI loggin in the GPEDIT.msc.
Just create the registry string value manually. HKLM\Software\Policies\Microsoft\Windows\Installer\Logging=voicewarmup

I've tried to run the vendors silent swich which is

setup.exe /s /v/qn /f2"c:\temp\Reader.log"

When I do this, I get a ResultCode= -3 in the Reader.log I setup, which reads "Required data not found in the Setup.iss file."


Create your own setup.iss file by running setup.exe /r it will create a setup.iss file in C:\Windows Unfortunately you are the recipient of one of IS's bastardized, vile msi creations. [:'(]
Answered 11/24/2009 by: joedown
Second Degree Brown Belt

Please log in to comment
0
ORIGINAL: joedown

I've had no luck with turning on MSI loggin in the GPEDIT.msc.
Just create the registry string value manually.  HKLM\Software\Policies\Microsoft\Windows\Installer\Logging=voicewarmup
I've done this in GPEdit, the key is already created and looks exactly the same in the HKLM\Software\Policies\Microsoft\Windows\Installer\Logging=voicewarmup

I've tried to run the vendors silent swich which is

setup.exe /s /v/qn /f2"c:\temp\Reader.log"

When I do this, I get a ResultCode= -3  in the Reader.log I setup, which reads "Required data not found in the Setup.iss file."


Create your own setup.iss file by running setup.exe /r  it will create a setup.iss file in C:\Windows  Unfortunately you are the recipient of one of IS's bastardized, vile msi creations. [:'(]
I believe I've already done this before, but it still fails to install. I think I'll go back and double check this to make sure I did do this, I'm 90% sure I've done this a couple of weeks ago. I think it was one of the first things I've tried.
Answered 11/24/2009 by: TheInfamousOne
Purple Belt

Please log in to comment
0
I've done this in GPEdit, the key is already created and looks exactly the same in the HKLM\Software\Policies\Microsoft\Windows\Installer\Logging=voicewarmup


Depending on how you install this software is where the log file will be created. If you are installing using a true system account the log file will probably be created in C:\Windows\Temp. If you are running as the logged in user then the log file will probably be created under C:\Documents and Settings\%UserID%\Local Settings\Temp Also you can specify where you want the log file created by passing the /l parameter. With an IS setup.exe it would probably be Setup.exe /V/l etc.

I've tried to run the vendors silent swich which is

setup.exe /s /v/qn /f2"c:\temp\Reader.log"


The command above will only create a log for the setup.exe and not a log of the msi install. Of which I have never found much use for.
Answered 11/24/2009 by: joedown
Second Degree Brown Belt

Please log in to comment
0
I'm surprised that no-one has suggested the simplest route, viz. to perform a delta snapshot (sometimes referred to as a "gap capture"). To do that:

- install using your MSI
- rename the 'Uninstall' registry entry, to avoid the vendor's set up seeing the installed status
- start a lightweight snapshot tool (e.g. InstallWatch) and take a 'Before' s/s
- run the vendor's set-up executable. Make sure you choose exactly the same options when installing
- reboot (I always reboot, irrespective of whether the package needs it)
- take an 'After' s/s
- add any relevant changes to the package via your response transform.
Answered 11/25/2009 by: VBScab
Red Belt

Please log in to comment
0
Hey! I got it to finally install, now whether the software works or not after it installs is another thing. ;) I've noticed after I launched the app, I went to go exit the app and it hangs out on the desktop will not close down or exit.

The vendors iss file was indeed bad or at least on my part it would fail when I would call it via command. I managed to create a new iss file with the corrected format applied and it seemed to work just fine. Now, all I need to do is create a wrapper in Wise to run the exe with the %command% variable and it looks good. I still might have to add the activesetup component into the MSI and I don't remember if it's needed. I should be able to grasp that part just fine as I've done it before with VMWare Workstation 6.5.1.

I'd like to thank everyone on here for their input, AngelID, joedown and VBScab.
Answered 11/25/2009 by: TheInfamousOne
Purple Belt

Please log in to comment
Answer this question or Comment on this question for clarity