配布前のインストーラーの構成
-
03-07-2019 - |
質問
私たちは、クライアントから顧客に配布される製品を開発しています。クライアント会社の管理者がインストーラーをエンドユーザーに送信する前にインストーラーの構成を変更できるようにする必要があります。この場合の構成の変更とは、エンドユーザーのコンピューターでレジストリエントリをいくつか作成することです。どうすればいいですか?
解決
これを確認してください: http://ozgrant.com/2008 / 03/11 / customising-your-wix-msi-with-transform-files /
ここで、
- 開発チームが汎用インストーラーを作成します。
- ITチームは、Orcaを使用してさまざまな変換(.mstファイル)を作成し、
- 特定の.mstを持つこれらのインストーラーは、異なるクライアントのセットに出荷されます。
HTH
他のヒント
これは、お客様に送信するサンプルスクリプトです。カスタム構成ファイルを作成し、このスクリプトを実行すると、ベースMSIに含まれるデフォルトを上書きするMSTとCABが作成されます。
元々、Orcaを使用するように顧客に指示しましたが、実際にはプロパティ/値を更新することしかできません-設定ファイルを置き換える必要がある場合、ほとんどのITスタッフがアクセスできない限り、やや複雑になりますWISE、InstallShieldなど。
Option Explicit
Const MSI_SRC = "myapp.msi"
Const MSI_TEMP = "temp.msi"
Const MST_FILE = "custom.mst"
Const MY_CONFIG = "customsettings.reg"
Const CAB_FILE = "config.cab"
Dim filesys
Set filesys=CreateObject("Scripting.FileSystemObject")
If filesys.FileExists(MSI_SRC) Then
filesys.CopyFile MSI_SRC, MSI_TEMP
Else
MsgBox "Unable to find " & MSI_SRC & "exiting", 48, "Fatal Error"
Set filesys = Nothing
WScript.Quit
End If
If filesys.FileExists(MST_FILE) Then
filesys.DeleteFile(MST_FILE)
End If
Dim installer, database, database2, view
Set installer = CreateObject("WindowsInstaller.Installer")
Set database = installer.OpenDatabase (MSI_TEMP, 1)
Set database2 = installer.OpenDatabase (MSI_SRC, 1)
If filesys.FileExists(MY_CONFIG) Then
Dim objFile, size, result, seq, objCab
Set objCab = CreateObject("MakeCab.MakeCab.1")
objCab.CreateCab CAB_FILE, False, False, False
objCab.AddFile MY_CONFIG, filesys.GetFileName(MY_CONFIG)
objCab.CloseCab
Set objFile = filesys.GetFile(MY_CONFIG)
size = objFile.Size
Set view = database.OpenView ("SELECT LastSequence FROM Media WHERE DiskId = 1")
view.Execute
Set result = view.Fetch
seq = result.StringData(1) + 1 ' Sequence for new configuration file
Set view = database.OpenView ("INSERT INTO Media (DiskId, LastSequence, Cabinet) VALUES ('2', '" & seq & "', '" & CAB_FILE & "')")
view.Execute
Set view = database.OpenView ("UPDATE File SET FileSize = " & size & ", Sequence = " & seq & ", FileName = 'CUSTOM~2.REG|customsettings.reg' WHERE File = '" & LCase(MY_CONFIG) & "'")
view.Execute
End If
database.GenerateTransform database2, MST_FILE
database.CreateTransformSummaryInfo database2, MST_FILE, 0, 0
' Cleanup
Set database = Nothing
Set database2 = Nothing
Set installer = Nothing
Set view = Nothing
filesys.DeleteFile(MSI_TEMP)
Set filesys = Nothing
所属していません StackOverflow