コード例 #1
0
        private static List <WixObject> GenerateFileSystemObjects(Dictionary <TempFolderObject, WixObject> lookupDict, TempFolder root, string appRegistryFolder)
        {
            WixDirectory targetDir         = new WixDirectory("SourceDir", null, appRegistryFolder);
            TempFolder   windowsVolumeFlag = PopulateWixDir_Rec(lookupDict, root, targetDir, appRegistryFolder);

            if (windowsVolumeFlag == null)
            {
                return new List <WixObject>()
                       {
                           targetDir
                       }
            }
            ;
            else
            {
                var wixFolder = lookupDict[windowsVolumeFlag];

                return(new List <WixObject>()
                {
                    targetDir, new WixSetDirectory(wixFolder.Id, "[WindowsVolume]" + windowsVolumeFlag.Name)
                });
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 public void AddDirectory(WixDirectory obj)
 {
     Objects.Add(obj);
 }