MSI & MST
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
Giz
0 Comments
[ + ] Show comments
Answers (13)
Please log in to answer
Posted by:
turbokitty
17 years ago
Posted by:
aogilmor
17 years ago
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.
Posted by:
aogilmor
17 years ago
Posted by:
gizmolala
17 years ago
Posted by:
gizmolala
17 years ago
Posted by:
spartacus
17 years ago
Posted by:
gizmolala
17 years ago
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
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
Posted by:
spartacus
17 years ago
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
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
Posted by:
aogilmor
17 years ago
Posted by:
aogilmor
17 years ago
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.
Posted by:
turbokitty
17 years ago
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
Posted by:
bkelly
17 years ago
Posted by:
danr29
17 years ago
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.