aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2019-05-23 15:37:56 -0700
committerRob Mensching <rob@firegiant.com>2019-05-23 16:02:37 -0700
commit354f6d5b79404544cb7c0e11a0d9212b4780ce09 (patch)
tree1082ce6dd66604f7da315d6a15c85ac3f56b745a /src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs
parent3051bf2fc300df125115c9538a0bfc8256bfde6a (diff)
downloadwix-354f6d5b79404544cb7c0e11a0d9212b4780ce09.tar.gz
wix-354f6d5b79404544cb7c0e11a0d9212b4780ce09.tar.bz2
wix-354f6d5b79404544cb7c0e11a0d9212b4780ce09.zip
Integrate latest Data changes for FileTuple and AssemblyTuple
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs')
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs32
1 files changed, 15 insertions, 17 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs
index 8c6a3e67..2199bbde 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs
@@ -156,13 +156,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind
156 throw new WixException(ErrorMessages.MaximumUncompressedMediaSizeTooLarge(null, maxPreCabSizeInMB)); 156 throw new WixException(ErrorMessages.MaximumUncompressedMediaSizeTooLarge(null, maxPreCabSizeInMB));
157 } 157 }
158 158
159 foreach (FileFacade facade in this.FileFacades) 159 foreach (var facade in this.FileFacades)
160 { 160 {
161 // When building a product, if the current file is not to be compressed or if 161 // When building a product, if the current file is not to be compressed or if
162 // the package set not to be compressed, don't cab it. 162 // the package set not to be compressed, don't cab it.
163 if (SectionType.Product == this.Section.Type && 163 if (SectionType.Product == this.Section.Type && (facade.Uncompressed || !this.FilesCompressed))
164 ((facade.File.Compressed.HasValue && !facade.File.Compressed.Value) ||
165 (!facade.File.Compressed.HasValue && !this.FilesCompressed)))
166 { 164 {
167 uncompressedFiles.Add(facade); 165 uncompressedFiles.Add(facade);
168 continue; 166 continue;
@@ -171,8 +169,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind
171 if (currentCabIndex == MaxCabIndex) 169 if (currentCabIndex == MaxCabIndex)
172 { 170 {
173 // Associate current file with last cab (irrespective of the size) and cab index is not incremented anymore. 171 // Associate current file with last cab (irrespective of the size) and cab index is not incremented anymore.
174 List<FileFacade> cabinetFiles = filesByCabinetMedia[currentMediaRow]; 172 var cabinetFiles = filesByCabinetMedia[currentMediaRow];
175 facade.WixFile.DiskId = currentCabIndex; 173 facade.File.DiskId = currentCabIndex;
176 cabinetFiles.Add(facade); 174 cabinetFiles.Add(facade);
177 continue; 175 continue;
178 } 176 }
@@ -187,8 +185,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind
187 mediaRows.Add(currentMediaRow.DiskId, currentMediaRow); 185 mediaRows.Add(currentMediaRow.DiskId, currentMediaRow);
188 filesByCabinetMedia.Add(currentMediaRow, new List<FileFacade>()); 186 filesByCabinetMedia.Add(currentMediaRow, new List<FileFacade>());
189 187
190 List<FileFacade> cabinetFileRows = filesByCabinetMedia[currentMediaRow]; 188 var cabinetFileRows = filesByCabinetMedia[currentMediaRow];
191 facade.WixFile.DiskId = currentCabIndex; 189 facade.File.DiskId = currentCabIndex;
192 cabinetFileRows.Add(facade); 190 cabinetFileRows.Add(facade);
193 // Now files larger than MaxUncompressedMediaSize will be the only file in its cabinet so as to respect MaxUncompressedMediaSize 191 // Now files larger than MaxUncompressedMediaSize will be the only file in its cabinet so as to respect MaxUncompressedMediaSize
194 currentPreCabSize = (ulong)facade.File.FileSize; 192 currentPreCabSize = (ulong)facade.File.FileSize;
@@ -205,8 +203,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind
205 } 203 }
206 204
207 // Associate current file with current cab. 205 // Associate current file with current cab.
208 List<FileFacade> cabinetFiles = filesByCabinetMedia[currentMediaRow]; 206 var cabinetFiles = filesByCabinetMedia[currentMediaRow];
209 facade.WixFile.DiskId = currentCabIndex; 207 facade.File.DiskId = currentCabIndex;
210 cabinetFiles.Add(facade); 208 cabinetFiles.Add(facade);
211 } 209 }
212 } 210 }
@@ -264,17 +262,17 @@ namespace WixToolset.Core.WindowsInstaller.Bind
264 262
265 foreach (FileFacade facade in fileFacades) 263 foreach (FileFacade facade in fileFacades)
266 { 264 {
267 if (!mediaRows.TryGetValue(facade.WixFile.DiskId, out var mediaRow)) 265 if (!mediaRows.TryGetValue(facade.DiskId, out var mediaRow))
268 { 266 {
269 this.Messaging.Write(ErrorMessages.MissingMedia(facade.File.SourceLineNumbers, facade.WixFile.DiskId)); 267 this.Messaging.Write(ErrorMessages.MissingMedia(facade.File.SourceLineNumbers, facade.DiskId));
270 continue; 268 continue;
271 } 269 }
272 270
273 // When building a product, if the current file is not to be compressed or if 271 // When building a product, if the current file is to be uncompressed or if
274 // the package set not to be compressed, don't cab it. 272 // the package set not to be compressed, don't cab it.
275 if (SectionType.Product == this.Section.Type && 273 var compressed = (facade.File.Attributes & FileTupleAttributes.Compressed) == FileTupleAttributes.Compressed;
276 ((!facade.File.Compressed.HasValue && !this.FilesCompressed) || 274 var uncompressed = (facade.File.Attributes & FileTupleAttributes.Uncompressed) == FileTupleAttributes.Uncompressed;
277 (facade.File.Compressed.HasValue && !facade.File.Compressed.Value))) 275 if (SectionType.Product == this.Section.Type && (uncompressed || (!compressed && !this.FilesCompressed)))
278 { 276 {
279 uncompressedFiles.Add(facade); 277 uncompressedFiles.Add(facade);
280 } 278 }
@@ -286,7 +284,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
286 } 284 }
287 else 285 else
288 { 286 {
289 this.Messaging.Write(ErrorMessages.ExpectedMediaCabinet(facade.File.SourceLineNumbers, facade.File.Id.Id, facade.WixFile.DiskId)); 287 this.Messaging.Write(ErrorMessages.ExpectedMediaCabinet(facade.File.SourceLineNumbers, facade.File.Id.Id, facade.DiskId));
290 } 288 }
291 } 289 }
292 } 290 }