共用方式為


將自訂轉換內嵌為子儲存體

您可以將自訂轉換儲存在 Windows Installer 套件的儲存體中,以確保安裝套件可用時一律可使用轉換。 請參閱 內嵌轉換。 Windows Installer SDK 中提供此範例作為公用程式WiSubStg.vbs。 下列程式碼片段Emb.vbs,也說明如何使用 Storages 資料表 來新增內嵌轉換,並且可與 Windows 腳本主機搭配使用。

'Emb.vbs. Argument(0) is the original database. Argument(1) is the
'    path to the transform file. Argument(2) is the name of the storage.
'
Option Explicit

' Check arguments
If WScript.Arguments.Count < 2 Then
 WScript.Echo "Usage is emb.vbs [original database] [transform] [storage name]"
 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")
 
' Evaluate command-line arguments and set open and update modes
Dim databasePath: databasePath = Wscript.Arguments(0)
Dim importPath  : importPath = Wscript.Arguments(1)
Dim storageName : storageName = Wscript.Arguments(2)
 
' Open database and create a view on the _Storages table
Dim sqlQuery : sqlQuery = "SELECT `Name`,`Data` FROM _Storages"
Dim database : Set database = installer.OpenDatabase(databasePath, 1)
Dim view     : Set view = database.OpenView(sqlQuery)
 
'Create and Insert the row.
Dim record   : Set record = installer.CreateRecord(2)
record.StringData(1) = storageName
view.Execute record
 
'Insert storage - copy data into stream
record.SetStream 2, importPath
view.Modify 3, record
database.Commit
Set view = Nothing
Set database = Nothing

若要將名為 MNPtrans1 的儲存體新增至MNP2000.msi,並包含您在將 摘要資訊新增至自訂轉換中所建立的轉換,請將目錄變更為包含Emb.vbs、原始資料庫和轉換檔案的資料夾,然後輸入下列命令列。

Cscript.exe Emb.vbs MNP2000.msi MNPtrans.mst MNPtrans1

這會完成自訂轉換範例。 在 MNPtrans.mst 中內嵌轉換之後,安裝套件一律可使用轉換。 MNPtrans.mst 檔案不需要位於來源以套用轉換。

從包含範例安裝套件的資料夾中移除 MNPtrans.mst。 按一下MNP2000.msi圖示以啟動安裝或使用下列命令列。

msiexec /i MNP2000.msi

請注意,這會在沒有自訂專案的情況下安裝產品。 若要使用自訂專案進行安裝,請輸入下列命令列。 使用冒號表示 TRANSFORMS 屬性的值是指內嵌轉換。

msiexec /i MNP2000.msi TRANSFORMS=:MNPtrans1

請注意,閘道功能不會出現在功能選取樹狀結構中,而且即使已在使用者介面中選取 [完整安裝類型],也不會安裝閘道功能的元件。

下一個範例

小型更新修補範例