2013-05-13 2 views
0

wix DirectoryCombo 요소의 속성은 RemoteFixed입니다. Remote 특성을 no으로 설정하면이 요소에서 만든 드롭 다운 목록에서 네트워크 공유가 제거됩니다. 마찬가지로 Fixed 속성을 no으로 설정하면 로컬 드라이브를 제외하는 목록이 생성됩니다. 내 문제는 네트워크 공유 만 표시하도록 목록을 제한 할 수 없다는 것입니다. RemoteyesFixedno으로 설정된 경우 드롭 다운 목록에서 원하는대로 할 수 있습니다 (네트워크 공유 만 표시). 그러나이 목록의 기본 항목에는 항상 Property 속성이 할당 된 속성 값이 표시됩니다.네트워크 공유 만 보여주는 wix DirectoryCombo 요소를 만드는 방법은 무엇입니까?

이 기본 항목이 표시되지 않도록 할 수있는 방법이 있습니까?

답변

1

예. 이 대화 상자를 실행하기 전에 네트워크 드라이브 값을 누구나 DirectoryCombo 속성으로 설정하면이 문제를 방지 할 수 있습니다. 네트워크 드라이브를 읽고 드라이브 값 중 하나를 해당 Directory 속성으로 설정하고 InstallUISequence에서 사용자 정의 작업을 예약하는 사용자 정의 작업을 작성하십시오.

[CustomAction] 
    public static ActionResult CustomAction1(Session session) 
    {  
     DriveInfo[] drives = DriveInfo.GetDrives(); 
     foreach (DriveInfo drvInfo in drives) 
     { 
      if (drvInfo.DriveType == DriveType.Network) 
      { 
       session["SHARED_DRIVE"] = drvInfo.Name; 
       break; 
      } 
     } 
     return ActionResult.Success; 
    } 

    <Binary Id="SharedDrive" SourceFile="TestProject.CA.dll" /> 
    <CustomAction Id="SHAREDDRIVE" BinaryKey="SharedDrive" DllEntry="CustomAction1" Return="check" /> 

<InstallUISequence> 
    <Custom Action="SHAREDDRIVE" After="AppSearch">Not Installed</Custom> 
</InstallUISequence> 
+0

내가 필요한 것! 이 코드를 사용하는 방법을 모르는 사람들에게 명확하게하기 위해서 : 마지막으로해야 할 일은'DirectoryCombo' 엘리먼트의 공개'SHARED_DRIVE' 변수를 다음과 같이 참조하는 것입니다 : '' – BdN3504