2009-03-02 4 views
2

변경된 구성 요소가 없으면 업그레이드가 제대로 작동하지만 구성 요소가 변경되면 업그레이드가 실패하고 사용자가 수동으로 제거하고 다시 설치해야합니다.Wix Major 업그레이드, 내가 뭘 잘못하고 있니?

일부 조각 : 또한

<Product Id="*" Name="My Application" Language="1033" Version="!(bind.FileVersion.ClientEXE)" Manufacturer="My Company" UpgradeCode="MYGUID-b94a-44eb-8e92-9286f1d89bbd"> 
    <Package Id="*" Description="My Installer" Comments="Copyright My Company 2008" InstallerVersion="200" Compressed="yes" /> 
    <Upgrade Id="MYGUID-b94a-44eb-8e92-9286f1d89bbd"> 
     <UpgradeVersion Language="1033" Property="UPGRADEFOUND" Minimum="0.0.0.0" Maximum="99.99.99.99" IncludeMinimum="yes" IncludeMaximum="yes" /> 
    </Upgrade> 


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

다음 레지스트리 키를 제거에서 제거 때때로하지 몇 가지 문제가 나는 이유를 이해하지 않습니다

 <Component Id="InstalledRegistry" Guid="SOMEGUID-0a17-4c6b-983d-8f3feb3a7724"> 
     <RegistryKey Id="InstalledRegKey" Root="HKMU" Key="SOFTWARE\MyCompany\Client" Action="createAndRemoveOnUninstall"> 
      <RegistryValue Name="Version" Type="string" Value="!(bind.FileVersion.ClientEXE)" KeyPath="yes"/> 
     </RegistryKey> 
     </Component> 

가 어떤 부트 스트 래퍼 검사의 그 "REINSTALL = ALL REINSTALLMODE = vamus"를 사용하여 msiexec를 시작할지 여부를 알고 있으므로 제거했지만 레지스트리 키가 제거되지 않으면 설치 프로그램이 업그레이드를 시도하고 자동으로 실패합니다.

더 이상 정보가


편집 필요한 경우 알려줘 : 일부 파일이 업데이트되면서 다른 문제는 이후에 있었다. RemoveExistingProducts를 After = "InstallValidate"로 변경하고이를 해결했습니다. 변경된 파일을 업그레이드하는 대신 이전 설치를 완전히 제거하기 때문에 조금 느려지지만 (제대로 감지되지 않는 것 같지만) 작업이 완료됩니다.

답변

3

FWIW를 사용하면 주요 업그레이드를 수행하기 위해 명령 줄 인수가 필요하지 않습니다.

코드가 정상적으로 보이므로 버전 번호가 변경되지 않았습니까? (Windows Installer는 4 부분으로 구성된 버전 번호를 사용하는 경우 처음 세 부분에만 신경을 씁니다.)

+0

그래서 REINSTALL = ALL 및 REINSTALLMODE는 주요 업그레이드에 필요하지 않습니다. 나는 그것이 문제일지도 모른다라고 생각한다. 확인한 후에 수락합니다. – Davy8