Fix compression of files without file hashes
Rob Mensching committed
Dec 12, 2017 at 12:04 UTC
6e9c25cb45cb59b4790ec3c32ee40d2077da521c
1 file changed
+7
-11
src/WixToolset.Core.WindowsInstaller/Bind/CabinetBuilder.cs
+7
-11
@@ -164,22 +164,18 @@ namespace WixToolset.Core.WindowsInstaller.Bind
164
string cabinetFileName = Path.GetFileName(cabinetWorkItem.CabinetFile);
165
string cabinetDirectory = Path.GetDirectoryName(cabinetWorkItem.CabinetFile);
166
167
- //using (WixCreateCab cab = new WixCreateCab(cabinetFileName, cabinetDirectory, cabinetWorkItem.FileFacades.Count(), maxCabinetSize, cabinetWorkItem.MaxThreshold, cabinetWorkItem.CompressionLevel))
168
- //{
169
- // foreach (FileFacade facade in cabinetWorkItem.FileFacades)
170
- // {
171
- // cab.AddFile(facade);
172
- // }
173
-
174
- // cab.Complete(newCabNamesCallBackAddress);
175
- //}
176
-
177
- var files = cabinetWorkItem.FileFacades.Select(facade => new CabinetCompressFile(facade.WixFile.Source.Path, facade.File.File, facade.Hash.HashPart1, facade.Hash.HashPart2, facade.Hash.HashPart3, facade.Hash.HashPart4)).ToList();
167
+ var files = cabinetWorkItem.FileFacades
168
+ .Select(facade => facade.Hash == null ?
169
+ new CabinetCompressFile(facade.WixFile.Source.Path, facade.File.File) :
170
+ new CabinetCompressFile(facade.WixFile.Source.Path, facade.File.File, facade.Hash.HashPart1, facade.Hash.HashPart2, facade.Hash.HashPart3, facade.Hash.HashPart4))
171
+ .ToList();
172
173
var cabinetCompressionLevel = (CabinetCompressionLevel)cabinetWorkItem.CompressionLevel;
174
175
var cab = new Cabinet(cabinetPath);
176
cab.Compress(files, cabinetCompressionLevel, maxCabinetSize, cabinetWorkItem.MaxThreshold);
177
+
178
+ // TODO: Handle newCabNamesCallBackAddress from compression.
179
}
180
}
181
}