2013-07-16 1 views
8

wxi 파일에서 Program Files 디렉터리가있는 변수를 설정하고 싶습니다. Program Files의 지역화 된 값을 선택하길 원합니다.wxi 파일의 변수에서 ProgramFilesFolder 값을 사용하는 방법

"[ProgramFilesFolder]\MyFiles". 

그것은 ProgramFilesFolder을 확장하지 않습니다 같은

<?define MyDirectory="!(wix.LocalizedProgramFilesFolder)\MyFiles"?> 

내가 정의한 LocalizedProgramFilesFolder :로

<WixVariable Id="LocalizedProgramFilesFolder" Value="[ProgramFilesFolder]"/> 

그러나 설치하는 동안은 MyDirectoryis이 들었다. wxi 파일의 변수에서 ProgramFilesFolder 값을 어떻게 사용합니까?

답변

7

MyDirectory 변수를 사용하는 이유를 잘 모릅니다. WixVariable docs으로 말 :

윅스 변수는 MSI/MSM/PCP 파일에 유지되지 않습니다, 그래서 MSI 파일이 설치 될 때 사용하지 수 그것은 WiX 전용 개념입니다.

값은 텍스트를 사용하는 곳마다 쓰여집니다. 따라서 값이 설치시 대체 된 속성을 갖도록하려면 해당 컨텍스트에서만 값을 사용해야합니다.

ProgramFilesFolder의 일반적인 용도는 하위 디렉토리가있을 수있는 디렉토리/@ Id입니다 (예 : MyFiles). 참고 : Directory/@ Id는 속성이기 때문에 사용할 수 있습니다.

<Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="INSTALLFOLDER" Name="MyFiles" /> 
     </Directory> 
    </Directory> 

INSTALLFOLDER

대신 MyDirectory 사용됩니다. 원하는대로 사용할 수 있지만 프로젝트 템플릿의 기본값입니다. 그것은 모두 대문자이며 공공 재산이됩니다. 공용 속성 값은 UI에서 설치 프로그램 시퀀스로 전달하거나 msiexec 또는 부트 스트 래퍼와 같은 다른 프로그램을 사용하여 전달할 수 있습니다.