2012-03-29 4 views
1

최근에 WIRE 3.5를 사용하는 Windows Installer에서 단순화 된 Chiense (zh-cn)에 대한 현지화 지원이 포함되었습니다. 우리 제품의 현재 버전은 1.3.0이고 이전 버전 (1.2.0)에서는 현지화 지원이 없습니다.WiX 현지화 - 업그레이드에서 데스크톱/프로그램 메뉴 바로 가기가 대체되지 않음

주요 업그레이드를 수행하기 위해 1.3.0의 제품 코드도 변경했습니다. 또한 MSI 변환 (Wisubstg.vbs 및 Wilangid.vbs 사용)을 사용하여 Bootstrapper를 사용하지 않고 단일 MSI에 현지화 지원을 통합했습니다.

업그레이드 모드에서 중국어 간체 빌드를 테스트 할 때 바탕 화면 및 prpogram 메뉴 바로 가기는 바뀌지 않지만 중국어 텍스트와 중복됩니다.

WiX 단축키 코드는 여기에 있습니다. 윈도우 7 영어 버전

  • <Shortcut Id="StartServiceShortcut" Icon="StartServiceIcon" 
        Name="!(loc.STR_StartServiceName)" 
        Description="!(loc.STR_StartServiceDesc)" 
        Target="[INSTALLLOCATION]bin\myapp.exe" Arguments="-s" 
        WorkingDirectory="INSTALLLOCATION"/> 
    

    product.Wxl

    <String Id="STR_StartServiceName">Start Service</String> 
    <String Id="STR_StartServiceDesc">Start Services</String> 
    
    • 설치된 1.2 빌드는 중국어 간체로 지역 설정을 변경 한 후 1.3 설치 프로그램을 실행합니다.
    • 중국어 간체로 내용을 표시하는 Windows Installer Wizard를 확인하십시오.
    • 설치가 완료되었습니다. 그러나 데스크탑/프로그램 메뉴는 새로운 중국어 텍스트와 중복됩니다.
    • 두 가지 shorcuts가 문제없이 작동합니다. 그러나 언인스톨은 shourt 절단을 모두 제거하지 못했습니다.

    제거 제품으로 바로 가기가 제거되지 않습니다. 또한 프로그램/기능 목록에 두 개의 항목이 있습니다. 또한 두 개의 다른 레지스트리 항목이 있음을 알 수 있습니다. 제품 이름과 게시자 값은 지역화되어 있으며 다른 모든 속성은 레지스트리 키와 동일합니다.

    어디에서 찾을 수 있습니까?

    사전 도움에 감사드립니다.

    업데이트 :

    '0'으로 업그레이드 언어를 변경 한 후, 나는 여전히 같은 문제를 얻고있다. 이 새로운 버전 1.3이 완전히 새로운 제품으로 설치 된 것 같습니다. 어떤 도움이라도!
    업그레이드 언어를 '0'으로 변경 한 후에도 여전히 동일한 문제가 발생합니다. 이 새로운 버전 1.3이 완전히 새로운 제품으로 설치 된 것 같습니다. 어떤 도움말!

    <Package InstallerVersion="300" Compressed="yes" InstallPrivileges="elevated" /> 
    
        <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /> 
    
    
        <Upgrade Id="$(var.UpgradeCode)"> 
         <UpgradeVersion Minimum="$(var.ProductVersion)" 
             IncludeMinimum="no" 
             OnlyDetect="yes" 
             Language="0" 
             Property="NEWPRODUCTFOUND" /> 
    
         <UpgradeVersion Minimum="$(var.RTMProductVersion)" 
             IncludeMinimum="yes" 
             Maximum="$(var.ProductVersion)" 
             IncludeMaximum="no" 
             Language="0" 
             Property="UPGRADEFOUND" /> 
    
        </Upgrade> 
        <Product Id="$(var.ProductID)" Name="!(loc.STR_ProductName)" Language="!loc.STR_Language)" Version="$(var.ProductVersion)" Manufacturer="!(loc.STR_Manufacturer)" UpgradeCode="$(var.UpgradeCode)" > 
    
  • 답변

    1

    마침내 얻었습니다. Alex Shevchuk의 블로그 From MSI to WiX, Part 8 - Major Upgrade 에게 감사드립니다.

    FindRelatedProducts 작업은 Upgrade 테이블의 각 레코드를 순서대로 실행하고 각 행의 업그레이드 코드, 제품 버전 및 언어를 시스템에 설치된 제품과 비교합니다.

    그래서 내 코드를 다음과 같이 변경하면 업그레이드가 완료되었습니다. 다른 사람들에게 유용 할 수 있습니다.

    모든 의견을 환영합니다!

    <Product Id="$(var.ProductID)" 
        Name="!(loc.STR_ProductName)" 
        Language="0" 
        Version="$(var.ProductVersion)" 
        Manufacturer="!(loc.STR_Manufacturer)" 
        UpgradeCode="$(var.UpgradeCode)"> 
    
    <Package InstallerVersion="300" Compressed="yes" InstallPrivileges="elevated" Languages="0" Manufacturer="!(loc.STR_Manufacturer)" /> 
    
    <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /> 
    
    
    <Upgrade Id="$(var.UpgradeCode)"> 
        <UpgradeVersion Minimum="$(var.ProductVersion)" 
            IncludeMinimum="no" 
            OnlyDetect="yes" 
            Language="0" 
            Property="NEWPRODUCTFOUND" /> 
    
        <!-- For UPGRADEFOUND Property, the Language attribute should be set to 1033 as previous version supports only English --> 
        <UpgradeVersion Minimum="$(var.RTMProductVersion)" 
            IncludeMinimum="yes" 
            Maximum="$(var.ProductVersion)" 
            IncludeMaximum="no" 
            Language="1033" 
            Property="UPGRADEFOUND" /> 
    
    </Upgrade> 
    
    +0

    수정 사항에 대한 축하해! 가능한 경우 답변을 '수락'으로 표시하여 다른 사람이 귀하의 질문에 답변하고 귀하의 솔루션에서 배울 수 있도록하십시오. 건배 ~ –

    +0

    @ Andrew Kozak 이용 가능합니다. 의견에 감사드립니다. – Muthukkumaran

    관련 문제