示例#1
0
        /// <summary>
        /// Packs the input files into a cab that is appended to the
        /// output SfxCA.dll.
        /// </summary>
        private static void PackInputFiles(string outputFile, IDictionary <string, string> fileMap)
        {
            log.WriteLine("Packaging files");

            CabInfo cabInfo = new CabInfo(outputFile);

            cabInfo.PackFileSet(null, fileMap, CompressionLevel.Max, PackProgress);
        }
示例#2
0
        private void InitWithWindowsLib(List <FileInCab> windowsLibListFiles, CompressionLevel level)
        {
            foreach (var cabGroupedFiles in windowsLibListFiles.GroupBy(f => f.CabPath))
            {
                if (!Directory.Exists(cabGroupedFiles.Key))
                {
                    Directory.CreateDirectory(Path.GetDirectoryName(cabGroupedFiles.Key));
                }
            }

            // create .cab
            foreach (var cabGroupedFiles in windowsLibListFiles.GroupBy(f => f.CabPath))
            {
                var cabInfo  = new CabInfo(cabGroupedFiles.Key);
                var filesDic = cabGroupedFiles.ToDictionary(file => file.RelativePathInCab, file => file.SourcePath);
                cabInfo.PackFileSet(filesDic, level, null);
            }

            VerifyCabFilesWithWindowsLib(windowsLibListFiles);
        }