2017-01-12 3 views
0

저는 Wix를 처음 접했습니다. ProductCode의 기본 설치 디렉토리

나는이 예제 시작 :

https://helgeklein.com/blog/2014/09/real-world-example-wix-msi-application-installer/

그는 (아래와 같이 실제로 로케일 정보) 변수를 사용하여 INSTALLDIR을 알아 냈 컴퓨 루틴을 가지고있다.

<!-- All folders from here on are relative to their parent. --> 

<Directory Id="ProgramFilesHK" Name="!(loc.ManufacturerName)"> 

    <!-- INSTALLDIR is a property name. We need it later for the UI (to be able to change the install dir. --> 
    <Directory Id="INSTALLDIR" Name="!(loc.ApplicationName)"> 

어떤 (예의)에 해결 : C

: \의 Program Files (x86) \ 헬게 클라인 \ uberAgent이

\ 내가 노력하고있어 ProductCode를 모든 중첩 된 하위 폴더의 (마지막) 하위 폴더로 만듭니다.

아카, 내가 원하는 :

C가 : \의 Program Files (x86) \ 헬게 클라인 \ {22222222-2222-2222-2222-222222222222}

\ 내가 이걸 발견 :

0,123,337 :

Obtaining generated ProductCode as a variable in Wix

그래서 나는에 코드를 변경 시도 879,

또한

 <Directory Id="INSTALLDIR" Name="[ProductCode]"> 

불행하게도, 그것은 나에게 왜이 일을하고 실제 제품 코드

에 대한 GUID의

C:\Program Files (x86)\Apps\CCT\[ProductCode]\ 

아닌 가치를 제공? 파일 데이터에 대한

,이의 파일을 설치 의미

내가 인스턴스가 설치하고있는 중이 야

<Property Id="INSTANCEID" Value="0"/> 
    <InstanceTransforms Property="INSTANCEID"> 
    <Instance Id="I01" ProductCode="{22222222-2222-2222-2222-222222222222}" ProductName="My Product 01"/> 
    <Instance Id="I02" ProductCode="{33333333-3333-4f1a-9E88-874745E9224C}" ProductName="My Product 02"/> 
    <Instance Id="I03" ProductCode="{44444444-4444-5494-843B-BC07BBC022DB}" ProductName="My Product 03"/> 
    </InstanceTransforms> 

이 기사

http://ysdevlog.blogspot.com/2011/08/revisited-multiple-instance.html

이 말한다 각 인스턴스가 다른 위치 - inst가 들어있는 경로 에이스 ID 부분으로 이 가장 적합합니다.

이 "계산"설치 디렉토리 논리에서 ProductCode를 "어떻게"가져올 수 있습니까?

감사합니다.

사용할 수없는 태그 : Wix 버전 3.10

"tag"라는 중복 질문에 유의하십시오.

매크로 값이 실제로 해석되므로이 값은 Wix Installer - Create Folder hierarchy based on Property과 같지 않습니다.

여기서 매크로 값은 해결되지 않습니다.

+0

가능한 중복 (http://stackoverflow.com/questions/12478566/wix-installer- 속성에 폴더 기반 폴더 생성) –

+0

다른 질문이 중복되지 않은 방법에 대한 설명을 추가했습니다. – granadaCoder

+0

사용자 지정 작업을 사용하여 INSTALLDIR을 [ProductCode] – mcdon

답변

0

이것을 wxs에 추가하여 작동하는지 확인해주세요.

<CustomAction Id="SetInstallDir" Property="INSTALLDIR" 
       Value="[PRODUCTCODE]" 
       Execute="firstSequence" /> 

그리고 <InstallExecuteSequence> 태그 내에

:

<Custom Action="SetInstallDir" Before="CostFinalize">INSTALLDIR=""</Custom> 
[윅스 설치 - 속성을 기반으로 만든 폴더 계층 구조]의
+0

으로 업데이트 할 수 있습니다. 시도해 볼만한가요? 이게 효과가 있니? – Isaiah4110