2013-06-05 1 views
14

WiX를 사용하여 UI가있는 설치 프로그램을 만들려고합니다. , 나는 < 제품 > 섹션에서 Wix Installer - 설치 경로에 [Manufacturer] 값을 표시하려면 어떻게해야합니까?

<Directory Id="TARGETDIR" 
      Name="SourceDir"> 
    <Directory Id="ProgramFiles64Folder"> 
    <Directory Id="ManufacturerFolder" 
       Name="[Manufacturer]"> 
     <Directory Id="INSTALLFOLDER" 
       Name="[ProductName]" /> 
    </Directory> 
    </Directory> 
</Directory> 

정의하고있어

:

내 INSTALLFOLDER이 사용 설정

<UIRef Id="WixUI_InstallDir" /> 
<UIRef Id="WixUI_ErrorProgressText" /> 

<Property Id="WIXUI_INSTALLDIR" 
      Value="INSTALLFOLDER" /> 

내가 설치 프로그램을 실행하고 대상 폴더 창에 도착

, 참조 :

Install Service to: 
C:\Program Files\[Manufacturer]\[ProductName]\ 

어떻게하면 v 디스플레이 용 ariables?

참고 : 나가면 설치를 마친 후 다음을 클릭하십시오. 그냥 안 좋아 보인다.

답변

5

구성 파일에 변수를 정의하십시오.

예를 들어, 파일을 다음을 포함하는 이름 config.wxi를 만듭니다

<?xml version="1.0" encoding="utf-8"?> 
    <Include> 
    <?define Manufacturer = "Company Name" ?> 
    <?define ProductName = "Product Name" ?> 
    </Include> 

그런 다음 $(var.Manufacturer)$(var.ProductName)를 사용하여 .wxs 파일의 변수를 참조합니다.

+0

도움 주셔서 감사합니다. – serialhobbyist

29

바인더 변수를 사용하면 전 처리기 변수를 정의 할 필요없이이 작업을 매우 쉽게 수행 할 수 있습니다. 그것은 많은 같이 갈 것 :

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFiles64Folder"> 
    <Directory Id="ManufacturerFolder" Name="!(bind.property.Manufacturer)"> 
     <Directory Id="INSTALLFOLDER" Name="!(bind.property.ProductName)" /> 
    </Directory> 
    </Directory> 
</Directory> 

!(bind.) 구문은 WiX.chm에서 Linker (light) 주제에 설명되어 있습니다.

+1

인스턴스 변환이 적용될 때 작동하지 않는 것처럼 보입니다. 다른 인스턴스를 설치할 때 여전히 기본 ProductName을 얻습니다. – arathorn