2010-03-19 3 views
7

Google 팀은 최근 문제가있는 특정 키를 수정하기 위해 사용자에게 사소한 레지스트리 수정 프로그램을 적용하는 것을 고려하고 있습니다. 레지스트리 내에서 1 개의 키/값을 업데이트하기 만하면됩니다.수동으로 MSI 패치 (.msp)를 만드시겠습니까?

현재 Wix를 사용하여 제품의 .msi 설치 프로그램을 빌드하고 있습니다.

  1. 원래 MSI의 사본을 가져 오기 및 컴파일 : 패치 파일을 .msp 파일 생성 윅스의 지원으로 찾고 있지만, .msp 파일을 만들 수있는 유일한 방법에 다소 overcomplicated 여러 단계의 과정을 것 같다 고정 MSI
  2. 의 새 복사본이
  3. 윅스는 .psp 전에 이상
  4. 실행 토치/파이에 촛불 .wixobj에 파일을 컴파일 모두 설치를 가리키는 새 윅스 파일 쓰기 /의 스냅 샷 후 원본 설치 관리자 및 .psp, 또는 대신 MsiMsp.exe를 사용하십시오.

이제 내 질문에 레지스트리 변경 사항을 Wix 파일로 간단히 설명하고 단계 1 및 4없이 .msp로 직접 컴파일 할 수는 없습니까? 이것은 간단한 변경만으로 많은 노력을 했습니까?

답변

7

아니요. 패치는 2 개의 설치 가능한 이미지의 델타입니다. 델타를 생성하려면 차이가 매우 작더라도 두 이미지가 모두 필요합니다.

+1

설명은 정확합니다. 두 이미지를 만드는 수동 방법을 설명하는 것입니다. –

2

Orca 및 Windows Install SDK (현재 Windows SDK의 일부)에서 다른 도구를 사용하여 MSP (패치) 및 MST (변환)를 만들 수 있습니다. 그러나이 과정은 WiX를 사용하는 것보다 훨씬 쉽습니다.

Here 내가 인터넷 검색 몇 분 동안 찾을 수있는 가장 좋은 설명입니다. 그래도 거기에 뭔가가 있어야한다고 생각합니다. 그러나 Windows Installer 형식에 익숙한 사용자라면 오카 (Orca)를 사용하기 전에 오르카 (Orca)를 사용하여 몇 가지 것을 시도해보고 시험해보기가 쉽습니다.

3

예, 또 다른 방법이있다, 당신은 동등하게 복잡하게 그것을 고려하더라도 :

  1. 당신이 메이크업 파일이나 다른 스크립트에서이 작업을 실행하면 (msiexec /qn /a <msi-file> TARGETDIR=<absolute-path-of-existing-directory>를 사용하여 "기본 버전"의 설치 관리자 만들기 , 명령의 앞)에 start /wait를 사용 %BASEDIR%
  2. 반복 위로 말하지만, 이제 %UPDDIR% 내부에 압축을 푼 설치를 가지고 %UPDDIR%
  3. 으로, 루트에있을 것입니다 .msi 파일로 변경 그 폴더의 ... 버전 번호를 변경하는 것이 바람직합니다.
    • 파일을 교환하는 경우 해시 테이블 (MsiFileHash) 또는 File 테이블을 버전 정보가있는 파일로 업데이트하십시오.
    • 만약 당신이 단지 약간의 레지스트리 값을 변경한다면, 당신은 아무 것도없이 괜찮을 것입니다 ...이제
  4. %UPDIR%
  5. .msiUpgradedImages%BASEDIR%에서 .msi 한 행으로 TargetImages 표에 msimsp.exe <pcp-file> -p <absolute-path-to-desired-patch-file>

호출을 하나 개의 행을 가리 키도록 .pcp (패치 만들기 속성) 파일을 준비 빌라, 끝났어.

이제 가치가 있는지 여부는 전적으로 귀하에게 달려 있습니다.

값을 쿼리하거나 필요에 따라 업데이트하기 위해 MSI 데이터베이스에서 SQL 쿼리를 실행하는 일부 스크립트를 사용하여이 작업을 수행하는 방법입니다. 이것은 완벽하게 잘 작동하며, MSI, 파생 된 MSI, 패치 및 더미 패치 (테스트 용)를 만들기 위해 GNU make 파일에 포함되었습니다.

여기서 설명하는 속임수는 압축 해제 된 관리 이미지를 패치하고 msimsp.exe을 지정하여 압축 해제 된 관리 이미지의 변경되지 않은 버전과 변경된 버전 사이에 패치를 생성하는 것입니다. 모두가 "손으로"당신의 요구 사항을 충족시킵니다.

설명이 필요한 경우에 대비하여 의견을 작성하십시오.