2011-09-08 4 views
6

GUI에서 사용자가 선택한 사용자 지정 설치 위치에 디렉터리가 이미 있는지 검색하고 싶습니다.Wix : 사용자 지정 설치 위치에서 DirectorySearch를 수행하는 방법

<Property Id="DIRECTORY_PATH"> 
    <DirectorySearch Id="DirectorySearch" Path="[INSTALLDIR]\MyDirectory" /> 
</Property> 

을하지만 DirectorySearch이 프로젝트에 AppSearch 동안 무슨 일이 일어나고 있기 때문에이 작동하지 않습니다 나는 다음 시도했다. INSTALLDIR은 InstallDirDlg 중에 나중에 설정됩니다. INSTALLDIR은 AppSearch에 맞춰 설정되지 않으므로 DIRECTORY_PATH는 "\ MyDirectory"로 잘못 설정됩니다.

AppSearch가 InstallUISequence 및 InstallExecuteSequence와 함께 발생하면 변경하려고했지만 AppSearch를 나중에 CostInitialize 전에 만 사용할 수 있습니다.

그래서 사용자가 선택한 INSTALLDIR 위치에서 디렉토리 검색을 수행합니까?

답변

3

사용자가 해당 디렉토리를 확인하기 만하면되기 때문에 DirectorySearch가 작업을 수행하지 않습니다. 사용자가 InstallDirDlg의 다음 클릭과 같이 INSTALLDIR을 선택한 직후에 "속성 설정"사용자 지정 작업을 작성해야합니다.

업데이트.

  • 사용자가 설정의 InstallDirDlg에 도달, 그/그녀가 INSTALLDIR 속성
  • 대화 InstallDirDlg 다음 사용자 지정을 트리거한다에 넣어 디렉토리를 선택 : 그래서, 나는 다음과 같은 기본적 의미 이 사용자 지정 작업이 INSTALLDIR 속성 값을 얻고, 간단한 파일 시스템이 INSTALLDIR이 MyDirectory
  • 가 않으면 DIRECTORY_PATH 속성이 필요한 값으로 설정
  • , 예를 들면 포함되어 있는지 여부를 확인해야
  • 다음 버튼 액션 session["DIRECTORY_PATH"] = session[INSTALLDIR] + "\MyDirectory";
  • 그렇지 않으면 DIRECTORY_PATH이 설정되지 않은 (당신은 NOT DIRECTORY_PATH을 확인하여 어떤 조건에서이 사실을 사용할 수 있습니다)

는 그것이 명확하게 바랍니다.

+0

"MyDirectory"를 검색중인 하위 디렉토리가 해당 위치에 있는지 여부가 아니라 사용자가 선택한 위치 만 설치 위치를 식별합니다. DirectorySearch가 없으면 설치 프로그램이 속성을 설정해야하는지 어떻게 알 수 있습니까? – Michael

+0

직접 디렉터리 검색을 시뮬레이트해야합니다. AppSearch 중에 실제 DirectorySearch가 발생하는 한 사용자의 요구에 맞지 않습니다. 이것이 내가 "속성 설정"작업을 인용 한 이유입니다. 속성 만 설정하면 안되며 하위 디렉토리가 있는지 알아보기 위해 약간의 논리를 사용해야합니다. –

+0

위의 설명이 혼란스럽게 들릴 것이라고 생각했습니다. 내 대답을 업데이트하겠습니다. –

0

희망이 도움이 될 것입니다.

이전 설치의 INSTALLDIR을 레지스트리에 저장 한 경우 가져 와서 검색 할 수 있습니다. 설치 UI 시퀀스에서 설치 위치는 이전 위치를 가리 킵니다.

<!-- Set previous install location, if available --> 
<Property Id="INSTALLDIR" Secure="yes"> 
    <RegistrySearch Id="InstallRootRegistry" 
        Type="raw" 
        Root="HKLM" 
        Key="SYSTEM\CurrentControlSet\Control\Session Manager\Environment" 
        Name="INSTALLDIR" /> 
</Property> 

<!-- The property WIXUI_INSTALLDIR must be set for the UI to know which directory to use as default --> 
<Property Id="WIXUI_INSTALLDIR" 
      Value="INSTALLDIR" Secure="yes"/> 
관련 문제