2009-04-22 11 views
17

버전 번호에 관계없이 기존 버전을 통해 설치해야하는 응용 프로그램의 설치 프로그램이 있습니다.WiX - 항상 이전 버전을 덮어 씁니다.

대신 설치 프로그램을 추가/제거해야한다는 설치 프로그램이 있습니다. 내 테스터의 경우 매우 실망스러운 행동입니다. 이전에 설치 한 패키지가 항상 설치되고 이전에 있던 파일은 삭제되므로 그 단계를 수행 할 필요가 없었습니다. 우리는 또한 내가 현재 설치 한 버전이 무엇이든간에 이전에 가지고 있던 설치를 덮어 써야한다는 점에서 유사하게 훈련 된 (큰) 고객 기반을 가지고 있습니다.

내가 수집 할 수있는 것으로부터, WiX 패러다임은 패치 설치와 같이 버전 설치 및 기타 복잡한 작업을 차단하는 것과 같다고 보입니다. 솔직히 말해서 고객은 솔직히 패치, 병합 등을 알거나 신경을 쓰지 않고 항상 작동하는 하나의 설치 프로그램을 원한다면 스마트하지 못합니다 (그리고 나는 동의하고 대역폭은 저렴합니다). 어떻게 알 수 있을까요?

이 시도했지만, 그냥 상관하지 않는 것 :

<InstallExecuteSequence> 
    <RemoveExistingProducts Before="InstallInitialize"/> 
</InstallExecuteSequence> 

이 윅스 버전 3.0.5120입니다.

편집 : 거기 롭의 제안에 따라, 나는이 코드를 추가 한 : 나는 롤백 설치를 허용하지 않도록 코드를 추가하고 있지 않다

<InstallExecuteSequence> 
    <RemoveExistingProducts After="InstallInitialize"/> 
</InstallExecuteSequence> 

<Upgrade Id="27cb76c7-544e-465f-b1f3-b11d9a49e416"> 
    <UpgradeVersion Minimum="0.8.0" 
        IncludeMinimum="yes" 
        Maximum="1.5.1" 
        Property="OLDERVERSIONBEINGUPGRADED" /> 
</Upgrade> 

을; 엄청나게 당혹 스럽기 때문에 버전 번호가 증가해도 반드시 소프트웨어 장점이 증가하는 것은 아닙니다. 나는 그들이 필요로한다고 생각하는 것에서 누군가를 잠그고 싶지 않습니다.

또 다른 설치 관리자를 사용하여 다른 GUID를 만들려면 제품의 기본 GUID를 "*"로 변경해야합니다. 이는 분명히 문제였습니다.

+2

마지막 문장을 얻지 못합니다. 제품의 기본 GUID를 *로 설정하면 컴파일 된 모든 설치 프로그램에 대해 새 GUID가 생성됩니다. 이로써 모든 업데이트마다 새로운 설치가 이루어집니다. 적어도 그것이 내가 생각한 것입니다. 나는 여전히 귀하의 문제에 대한 간단한 작업 PoC를 찾으려고 노력하고 있습니다 ... –

+0

저에게 설치가 결코 곁에 없을 것 같았습니다. 업그레이드 코드가 일치하는 한 이전 버전이 제거되고 새 버전이 업그레이드됩니다. wix에서 예상되는 동작이 아닌가? – Shadoninja

답변

18

대대적 인 업그레이드가 필요합니다. WiX.chm의 "How To"(웹 : http://wix.sourceforge.net/manual-wix3/major_upgrade.htm) 주제가 있습니다.

+0

재미 있습니다. 그래서 내가 단지 업그레이드 물건을 원한다면,하지만 나는 또한 버전을 되돌릴 수 있도록하고 싶습니다, 그리고 나서 나는 더 낮은 버전의 설치를 허용하지 않는 것에 대해 두번째 부분을 버리십시오, 나는 생각하고 있습니다. – mmr

+0

@ mmr 끝낸 일을 나눌 수 있습니까? 제공된 링크는 귀하의 질문에 완전히 대답하는 것 같지 않습니다. 귀하가 원하는 것의 반대를하는 방법을 알려주는 경우. – user145400

관련 문제