Is there a way to combine both msi & mst into one single msi. I tried it using ORCA but not all the changes i made were saved. is there any other tool to use?

Giz
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
Installshield claims that it can do this, although I've never tried. You can download the trial... you just need the Editor.
Answered 07/20/2006 by: turbokitty
Sixth Degree Black Belt

Please log in to comment
0
do you mean the "save tranformed as.." didn't work? I just did a test OK with my msi (orca v 3.1) and it seemed to save the changes OK but I ended up with a much smaller mSI and got a cab error when installing. do some reading on how Orca handles source files, and also make sure you're not opening up your original MSI as read only.
Answered 07/20/2006 by: aogilmor
Ninth Degree Black Belt

Please log in to comment
0
here's how I did it: in orca (v 3.1) , go to tools/options/database tab, make sure the "copy embedded streams during Save As" box is checked.

Then save your transformed MSI.

let me know if this works.
Answered 07/20/2006 by: aogilmor
Ninth Degree Black Belt

Please log in to comment
0
tnx. the version of ORCA i have is V2.0. PLS where can i get the v3.1?

Giz
Answered 07/21/2006 by: gizmolala
Third Degree Blue Belt

Please log in to comment
0
Got the download of microsoft website. Will try it and live feedback.

Giz
Answered 07/21/2006 by: gizmolala
Third Degree Blue Belt

Please log in to comment
0
If you've gone to the trouble of downloading the full Platform SDK rather than just ORCA, then you could also combine MSI's with MST's using the script WiUseXfm.vbs provided by the SDK.

http://windowssdk.msdn.microsoft.com/en-us/library/ms700432.aspx


Regards,

Spartacus
Answered 07/21/2006 by: spartacus
Black Belt

Please log in to comment
0
Got an error during saving using ORCA V3.1.

ERROR says " The msi contains at least one embedded substorage which cannot be copied to the new package. You'll need to manually import these substorages into the new file".

How do i know the substorages that were not copied? and SPARTACUS i can't hold of the script at the sight u gave.

Giz
Answered 07/21/2006 by: gizmolala
Third Degree Blue Belt

Please log in to comment
0
The link I posted was just for information not the actual download link itself. You need to locate and download the full Windows Server 2003 Platform SDK (overkill, I know), then the WiUseXfm.vbs will have been installed to

C:\Program Files\Microsoft Platform SDK\Samples\SysMgmt\Msi\Scripts

by default.

Not sure whether it's permissible to cut and paste a piece of Microsoft's own script code in this forum, otherwise I would ...

Regards,

Spartacus
Answered 07/21/2006 by: spartacus
Black Belt

Please log in to comment
0
i"ve installed all the sdk tools at one time or another. sparty's right, have a look at the scripts, look at makemsi and other utils (makecab.exe i think is another). there's a lot you can do with scripts but they're not real user friendly ime (that's why wise costs so much! [;)] )
Answered 07/21/2006 by: aogilmor
Ninth Degree Black Belt

Please log in to comment
0
check out this microsoft link in addition to spartacus's good info. this deals with substorage of binaries, which i suspect might be your issue here.
Answered 07/21/2006 by: aogilmor
Ninth Degree Black Belt

Please log in to comment
0
ORIGINAL: spartacus
The link I posted was just for information not the actual download link itself. You need to locate and download the full Windows Server 2003 Platform SDK (overkill, I know), then the WiUseXfm.vbs will have been installed to



Bah, why not? The copyright info is in there (cringing, waiting for Bob to send down a lightning bolt).

---------------------------------------------------

' Windows Installer utility to applay a transform to an installer database
' For use with Windows Scripting Host, CScript.exe or WScript.exe
' Copyright (c) Microsoft Corporation. All rights reserved.
' Demonstrates use of Database.ApplyTransform and MsiDatabaseApplyTransform
'
Option Explicit

' Error conditions that may be suppressed when applying transforms
Const msiTransformErrorAddExistingRow = 1 'Adding a row that already exists.
Const msiTransformErrorDeleteNonExistingRow = 2 'Deleting a row that doesn't exist.
Const msiTransformErrorAddExistingTable = 4 'Adding a table that already exists.
Const msiTransformErrorDeleteNonExistingTable = 8 'Deleting a table that doesn't exist.
Const msiTransformErrorUpdateNonExistingRow = 16 'Updating a row that doesn't exist.
Const msiTransformErrorChangeCodePage = 256 'Transform and database code pages do not match

Const msiOpenDatabaseModeReadOnly = 0
Const msiOpenDatabaseModeTransact = 1
Const msiOpenDatabaseModeCreate = 3

If (Wscript.Arguments.Count < 2) Then
Wscript.Echo "Windows Installer database tranform application utility" &_
vbNewLine & " 1st argument is the path to an installer database" &_
vbNewLine & " 2nd argument is the path to the transform file to apply" &_
vbNewLine & " 3rd argument is optional set of error conditions to suppress:" &_
vbNewLine & " 1 = adding a row that already exists" &_
vbNewLine & " 2 = deleting a row that doesn't exist" &_
vbNewLine & " 4 = adding a table that already exists" &_
vbNewLine & " 8 = deleting a table that doesn't exist" &_
vbNewLine & " 16 = updating a row that doesn't exist" &_
vbNewLine & " 256 = mismatch of database and transform codepages" &_
vbNewLine &_
vbNewLine & "Copyright (C) Microsoft Corporation. All rights reserved."
Wscript.Quit 1
End If

' Connect to Windows Installer object
On Error Resume Next
Dim installer : Set installer = Nothing
Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError

' Open database and apply transform
Dim database : Set database = installer.OpenDatabase(Wscript.Arguments(0), msiOpenDatabaseModeTransact) : CheckError
Dim errorConditions:errorConditions = 0
If Wscript.Arguments.Count >= 3 Then errorConditions = CLng(Wscript.Arguments(2))
Database.ApplyTransform Wscript.Arguments(1), errorConditions : CheckError
Database.Commit : CheckError

Sub CheckError
Dim message, errRec
If Err = 0 Then Exit Sub
message = Err.Source & " " & Hex(Err) & ": " & Err.Description
If Not installer Is Nothing Then
Set errRec = installer.LastErrorRecord
If Not errRec Is Nothing Then message = message & vbNewLine & errRec.FormatText
End If
Wscript.Echo message
Wscript.Quit 2
End Sub
Answered 07/24/2006 by: turbokitty
Sixth Degree Black Belt

Please log in to comment
0
Properly credited like this I have no problem with script code being quoted in a forum post- thanks for helping (yet again!)
Answered 07/24/2006 by: bkelly
Red Belt

Please log in to comment
0
The Windows Installer SDK also includes a command-line utility for merging an .mst into an .msi. It's called msitran.exe and is located within the folder that the SDK creates when installed. Use the msitran.exe /? for info on the proper command line to use. I use it often and it works great.
Answered 07/27/2006 by: danr29
Purple Belt

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