2012-02-10 4 views
0

우리 제품 중 하나의 설치 프로그램을 만들고 있습니다. 설치 프로그램은 WISE와 일찍 끝났지 만이 릴리스로 이것을 wix로 변경하려고했습니다. 새로운 버전을 설치하기 전에 사용자가 이전 버전의 제품을 제거해야하므로 이전 설치 프로그램에서 만든 레지스트리에서 키를 확인해야합니다 (이전 버전을 제거 할 때 키가 제거됨).존재하지 않는 레지스트리 키를 찾는 Wix 설치자

<!-- Check if older version of Product has been installed. Must be removed by user--> 
<!-- The key below is set by the old installer. If it exists, the old version is there.--> 
<Property Id="OLDKEY"> 
    <RegistrySearch Id="OldRegKey" Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Company Product för Product" Name="DisplayName" Type="raw"></RegistrySearch> 
</Property> 

<Condition Message="You need to uninstall the old version of Product before installing this one."> 
    OLDKEY 
</Condition> 

당신은 거기에 스웨덴의 성격을 알 수 있습니다 :

나는 조건부 그래서 같은 WXS에 체크를합니다. 이것이 어떤 문제의 원인이 될 수 있습니다. 스웨덴어 문자를 처리해야했던 이래서 구성한 방법입니다.

<Product 
    Id="*" 
    Name="$(var.Manufacturer) $(var.ApplicationName)" 
    Language="1033" 
    Version="!(bind.FileVersion.Product.exe)" 
    Manufacturer="$(var.Manufacturer) AB" 
    UpgradeCode="[GUID]" 
    Codepage="1252" 
> 

1252 코드 페이지에 유의하십시오.

컴퓨터에 이전 버전이 설치되어있을 때 레지스트리에서 키를 찾으면 설치 프로그램이 나에게 메시지를 표시합니다. 이전 버전을 제거하면 레지스트리 키가 사라지는 것을 볼 수 있지만 설치 프로그램은 여전히 ​​메시지를 표시하고 종료됩니다. 나는 아무런 도움없이 재부팅을 시도했다.

나는 생각이 부족합니다 ... 어떤 생각?

+0

자세한 로그의 내용은 무엇입니까? –

+0

자세한 내용은 설치 로그를 작성하십시오. 내 생각 엔 그 재산이 어떻게 든 설정됩니다. – Ciprian

+0

와이즈 설치 프로그램도 MSI였습니까? (당신이 인용 한 열쇠는 그렇지 않다는 것을 암시합니다.) 그러나 만약 그렇다면 이전 버전을 찾기 위해 아마 업그레이드를 사용할 수 있습니다. –

답변

1

키를 찾을 수없는 경우 레지스트리 검색에서 1을 반환합니다. 그래서

<![CDATA[OLDKEY <> 1]]> 

OLDKEY 

을 변경 그리고 그것은 수정되었습니다.

관련 문제