2013-05-13 47 views
0

wix DirectoryCombo元素具有属性RemoteFixed。通过将Remote属性设置为no,网络共享将从此元素创建的下拉列表中删除。同样,将Fixed属性设置为no会生成一个排除本地驱动器的列表。我的问题是,我不能限制列表只显示网络共享。如果Remote设置为yesFixed设置为no,我希望下拉列表能够做我想做的事情,即只显示网络共享。但该列表中的默认条目总是显示其属性被分配给的属性值。如何创建仅显示网络共享的wix DirectoryCombo元素?

有没有办法阻止这个默认条目出现?

回答

1

是的。您可以通过将网络驱动器的任何值设置为DirectoryCombo来防止此问题。运行该对话框之前的属性。编写自定义操作以读取网络驱动器,并将任何一个驱动器值设置为该目录属性,并在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 2013-05-23 08:30:27