2013-05-13 60 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