문제

우리는 고객이 고객에게 배포하는 제품을 개발합니다. 고객 회사의 관리자가 설치 프로그램을 최종 사용자에게 보내기 전에 설치 프로그램을 구성 할 수 있도록해야합니다. 이 경우 구성 변경은 최종 사용자 컴퓨터에서 몇 개의 레지스트리 항목을 작성해야합니다. 어떻게해야합니까?

도움이 되었습니까?

해결책

이것을 확인하십시오 :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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top