2012-03-23 7 views
1

DLL 및 구성 파일을 많이 설치하는 WIX로 만든 설치 프로그램이 있습니다. 설치가 완료되면 분명히 DLL 파일을 업데이트하고 configs를 그대로두고 싶을 때가 있습니다.WIX 설치 프로그램 덮어 쓰기/업데이트

나는 NeverOverwrite="yes" 옵션을 살펴 봤지만 유망 해 보였으 나 이제는이 문제와 관련이 있습니다. 설치가 완료된 후 설치 프로그램을 다시 실행하면이 오류가 발생합니다.

enter image description here

문제

내가 빌드 번호 또는 제품 ID를 엉망으로하지 않을 것입니다. 난 그냥 설치 프로그램을 다시 실행하고 필요한 DLL 파일을 overrwite 싶어요. 이게 말이 돼?

+2

설치 프로그램을 다시 실행하지 않고 다시 컴파일 한 다음 이전 버전이 설치된 컴퓨터에서 실행하려고 시도 했습니까? – BryanJ

+0

이 100 % 올바름 BryanJ – aherrick

답변

2

dll을 업데이트하기 위해 다시 컴파일하는 경우 설치 프로그램에서 버전 관리를 업데이트해야한다고 생각해야합니다. dll과 설치 프로그램을 컴파일 할 때마다 빌드 번호를 업데이트하는 빌드 프로세스가 있으면 문제가되지 않습니다.

오류가 발생하는 이유는 제품 ID와 버전 번호가 일치하지만 패키지 코드가 다르기 때문입니다. 이 오류를 해결하려면 다음 옵션이 필요합니다.

  • 버전 번호를 업데이트하고 업그레이드와 같이 취급하십시오.
  • 제품 ID (및 버전)를 변경하고 업그레이드처럼 취급하십시오.
  • 패키지 코드를 설정하면 제품 ID와 버전이 일치 할 수 있지만 특히 설치 프로그램에서 파일을 수정하는 경우에는 실제로 권장하지 않습니다. 이전 설치 관리자와 일치하도록 패키지 코드를 설정하면 유지 보수 대화 상자가 표시되며 복구 또는 수정 작업을 수행 할 때 복구를 수행 할 때 캐시 된 MSI 또는 재 컴파일 된 MSI를 사용할 것인지 잘 모르겠습니다. 나는 당신이 기대할 수있는 결과가 확실하지 않습니다.
2

BryanJ와 마찬가지로 오류는 이전에 설치 한 패키지와 동일한 제품 코드를 가진 새 패키지를 설치 중임을 나타냅니다.

해결 방법은 제품 Id의 속성을 *으로 설정할 가능성이 가장 높습니다. minor upgrades 기능을 원할 때만 안정적인 제품 ID가 필요합니다.

마이너 업그레이드는 기능 구성 요소 트리의 재구성을 허용하지 않으며 AFAIK는 거대한 설치에 더 빠른 이점이 있습니다. 모든 업그레이드는 major upgrades으로 수행하기 때문에 관리하기가 더 쉽습니다.

관련 문제