2017-11-27 29 views
-1

나는 레지스트리 키를 추가하고 일부 서비스를 설치 및 시작하고 파일을 설치하는 MSI를 가지고 있습니다. 이제 하나의 파일을 업데이트하고 새 파일을 추가해야한다는 요구 사항이 있습니다. 우리는 차이점/변형을 만들어서 패치를 만들 수 있다는 것을 알고 있습니다. 그러나 두 번째 MSI에서는 HotFix와 같은 다른 파일이 아닌이 두 파일 (업데이트 된 파일과 새 파일) 만 포함하려고합니다. 나는 패치를 만들고 싶지 않다. 나는 별도의 MSI를 만들려고했으나 동일한 UpgradeCode를 사용했지만 다른 제품 ID와 다른 버전을 사용했다. 그러나 이로 인해 프로그램 및 기능에 새로운 항목이 만들어집니다. 또한이 새로운 MSI를 제거하는 동안 새 파일이 롤백되지만 수정 된 파일은 롤백되지 않습니다.이 파일은 처음에는 첫 번째 MSI에서 생성되고 두 번째 MSI에서 수정되었습니다. 최소한 제거 중에 상태를 롤백하고 복원 할 수 있다면 좋을 것입니다. 그러나 수정 된 파일을 제대로 롤백하지 않습니다.이 시나리오를 접하게되는 사람이 있습니까? 그렇다면 패치없이 솔루션을 찾을 수 있었습니까? 도와주세요.WiX Patch에 대체

+1

패치를 피한 이유는 * 자신이 말하는 것처럼 이상적인 유스 케이스로 보입니다. 특정 기술 제약이있는 경우, * 그들이 무엇인지 아는 것이 부적절한 것으로 밝혀진 다른 제안을 피하는 데 도움이됩니다. –

+0

고객이이 방법을 원하고 이유가 있습니다. 패치에는 관심이없는 다른 변경 사항이 포함될 수도 있습니다. – Ven

+3

... 그러면 클라이언트가 원하는 변경 사항 만있는 패치를 만듭니다. –

답변

1

설치된 제품을 업데이트하는 세 가지 방법으로 패치, 주요 업그레이드 및 부 업그레이드가 있습니다. 기존 제품의 일부 파일을 대체하는 새로운 MSI를 만들 수 있지만 실제로 수행하는 작업은 Microsoft Dll (예 :)이 여러 제품간에 공유되는 것과 같은 방식으로 파일을 공유하는 것입니다. (동일한 구성 요소 ID를 사용하고 올바르게 공유하지 않으면 제품을 업데이트하는 대신 해체 할 가능성이 더 높습니다.)이 때문에 파일 보존 동작이 표시됩니다.

패치에 "관심이없는 다른 변경 사항이 포함되어 있습니다"라는 생각이 포함되어서는 안됩니다. 변경 사항 만 포함되도록 패치를 작성하십시오. 패치를 만들 때 MSI 파일에 넣을 경우에만 다른 변경 사항이 포함됩니다.

패치 중에 파일을 추가하는 것은 몇 가지 규칙이 포함되어있어 까다로울 수 있습니다. 가장 안전한 방법은 새 파일을 추가 할 때 중요한 업그레이드입니다.

는 그래서 choces은 다음과 같습니다

  1. 에만 필요한 업데이트가 포함 된 패치.

  2. 주요 업그레이드는 제품을 업그레이드하는 완전히 새로운 MSI 파일입니다.

  3. 다시 같은 제품 코드와 완전히 새로운 MSI 파일 인 부분 업데이트, 증가 버전, 사소한 핫픽스 변경, REINSTALL = ALL REINSTALLMODE = vomus 여기서를 포함하는 특별한 명령 줄 설치

필요한 변경 사항 만 포함하도록 패치를 만들 수 있습니다.

+0

자세한 답변을 보내 주셔서 감사합니다. 그러나 패치를 만들려면 변환/차이가 필요합니다.그래서 원래의 MSI에 100 개의 파일이 있고 새 MSI에 3 개의 파일 만있는 경우 변환을 수행하면 남은 97 개의 파일도 변환되어 패치의 일부가되지 않습니까? 이해 좀 도와주세요. – Ven

+0

모든 파일, 동일한 ProductCode, 증가 된 버전 및 몇 가지 업데이트 된 파일을 사용하여 원본과 동일한 MSI를 작성합니다. 이 패치는 두 MSI 파일의 차이점입니다. – PhilDW