2010-02-25 4 views
1

RegistrySearch를 사용하여 내 디렉토리 중 하나 인 속성을 설정하고 그 값보다 존재하지 않는 하위 디렉토리의 레지스트리 값을 볼 때 디렉토리가 설정되어 있지 않은 이유는 무엇입니까? 내 경우
ROLESDIR 대상 디렉토리가 존재하지 않는 경우 비어로 설정됩니다 (레지스트리는 여전히 가리 동안) -> 최종 결과는하여 RoleDir이 존재하지 않는 디렉토리에 대해 RegistrySearch를 사용하여 디렉토리를 설정하면 작동하지 않습니다.

<Property Id="ROLESDIR"> 
    <RegistrySearch Id="ROLESDIRRegistry" Type="directory" Root="HKLM" Key="Software\DummyName\UCM" Name="ConfRolesDirectoryPath" /> 
</Property> 

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFilesFolder"> 
    <Directory Id="SDIR"> 
     <Directory Id="CONFDIR" Name="Conf"> 
     <Directory Id="ROLESDIR" Name="Roles"> 
      <Directory Id="RoleDir" Name="MyRole" /> 
     </Directory> 
     </Directory> 
    </Directory> 
    </Directory> 
</Directory> 
CONFDIR

바로 아래에 설치 될 것입니다
+0

당신이 명확하게 질문을 편집 할 수 있습니다이

<Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ROLESDIR" Name="Roles"> <Directory Id="RoleDir" Name="MyRole" /> </Directory> <Directory Id="ProgramFilesFolder"> <Directory Id="SDIR"> <Directory Id="CONFDIR" Name="Conf" /> </Directory> </Directory> </Directory> 

희망 같은 것을 시도 할 수도? 당신은 어떤 상황에서는'ROLESDIR'가 예상대로 설정되지 않았다고 말하고있는 것 같지만 그 상황이 무엇인지 분명하지 않습니다. –

답변

2

귀하의 질문은 매우 명확하지 않습니다.

레지스트리 값의 예를 들려 줄 수 있습니까?

나는 이것을 과거에 사용했다.

<Property Id="INSTALLDIR"> 
    <RegistrySearch Id="INSTALLDIRRegistry" Type="raw" Root="HKLM" Key="Software\Manufacturer\Product" Name="InstallDir" /> 
</Property> 

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="INSTALLDIR" Name="ProductName"> 

이렇게하면 INSTALLDIR이 레지스트리 값의 경로 위치로 설정됩니다. 나는 당신의 경우에 이미 wix 코드에 의해 정의 된 경로가있는 폴더의 경로를 설정하려고한다고 생각한다.

당신은

+0

귀하의 대답은 정확합니다. 디렉토리 유형을 사용했기 때문에 문제가 발생했습니다. 디렉토리가 존재해야한다는 것이 문서화되어 있지 않지만 –

관련 문제