public static string GenerateMsiCondition(WixItem item) { HashSet <WixItem> processedItems = new HashSet <WixItem>(); string[] conditions = WixBackendCompilerServices.GenerateMsiConditions(item, processedItems); return(conditions.Length == 0 ? null : String.Join(" AND ", conditions)); }
private static string[] GenerateMsiConditions(WixItem item, HashSet <WixItem> processedItems) { List <string> conditions = new List <string>(); if (!processedItems.Contains(item)) { processedItems.Add(item); if (item.Group != null) { conditions.AddRange(WixBackendCompilerServices.GenerateMsiConditions(item.Group, processedItems)); } if (item.Parent != null) { conditions.AddRange(WixBackendCompilerServices.GenerateMsiConditions(item.Parent, processedItems)); } string condition = Install.GetCondition(item.Item); if (!String.IsNullOrEmpty(condition)) { conditions.Add(condition); } } return(conditions.ToArray()); }