배포하기 전에 설치 프로그램을 구성합니다
-
03-07-2019 - |
문제
우리는 고객이 고객에게 배포하는 제품을 개발합니다. 고객 회사의 관리자가 설치 프로그램을 최종 사용자에게 보내기 전에 설치 프로그램을 구성 할 수 있도록해야합니다. 이 경우 구성 변경은 최종 사용자 컴퓨터에서 몇 개의 레지스트리 항목을 작성해야합니다. 어떻게해야합니까?
해결책
이것을 확인하십시오 :http://ozgrant.com/2008/03/11/customising-your-wix-flsi-with-transform-files/
여기,
- 개발 팀은 일반 설치 프로그램을 만듭니다.
- IT, 팀은 ORCA를 사용하여 다른 변환 (.MST 파일)을 만듭니다.
- 특정 .MST가있는이 설치 프로그램은 다른 클라이언트 세트로 배송됩니다.
HTH
다른 팁
다음은 고객에게 보내는 샘플 스크립트입니다. 사용자 정의 구성 파일을 만들고이 스크립트를 실행하고 기본 MSI에 포함 된 기본값을 덮어 쓰는 MST와 운전실로 끝납니다.
원래 우리는 방금 고객에게 ORCA를 사용하도록 지침을 주었지만 실제로 속성/값을 업데이트 할 수 있습니다. 구성 파일을 교체 해야하는 경우 현명한 IT 직원이 현명한 IT 직원에게 액세스 할 수없는 경우에도 약간 복잡해집니다. 또는 유사합니다.
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