private static TempFolder PopulateWixDir_Rec(Dictionary <TempFolderObject, WixObject> lookupDict, TempFolder currFolder, WixDirectory currWixFolder, string appRegistryFolder) { foreach (var file in currFolder.Files) { WixFile wfile = new WixFile(currWixFolder.GetPath(), file.Name, file.Source, appRegistryFolder); currWixFolder.AddFile(wfile); lookupDict.Add(file, wfile); } TempFolder windowsVolumeFlag = null; foreach (var folder in currFolder.Folders) { if (folder.Empty) { continue; } if (folder.Name != @"%windowsvolume%") { WixDirectory wfolder = new WixDirectory(folder.Name, currWixFolder.GetPath(), appRegistryFolder); currWixFolder.AddDirectory(wfolder); lookupDict.Add(folder, wfolder); windowsVolumeFlag = PopulateWixDir_Rec(lookupDict, folder, wfolder, appRegistryFolder); } else { var nextFolder = folder.Folders.First(); // WixDirectory wfolder = new WixDirectory(nextFolder.Name, currWixFolder.GetPath(), appRegistryFolder); // currWixFolder.AddDirectory(wfolder); //lookupDict.Add(nextFolder, wfolder); PopulateWixDir_Rec(lookupDict, folder, currWixFolder, appRegistryFolder);//we're skipping ahead in our recursive search but returning a flag. windowsVolumeFlag = nextFolder; } } return(windowsVolumeFlag); }
//public void AddRemoveFile(WixRemoveFile f) //{ // this.Objects.Add(f); //} public void AddFile(WixFile f) { this.Objects.Add(f); }
public void AddFile(WixFile wfile) { this.Objects.Add(wfile.GetComponent()); }