aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs')
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs
index db887f09..3c8b4999 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs
@@ -11,6 +11,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
11 using WixToolset.Core.Bind; 11 using WixToolset.Core.Bind;
12 using WixToolset.Core.WindowsInstaller.Msi; 12 using WixToolset.Core.WindowsInstaller.Msi;
13 using WixToolset.Data; 13 using WixToolset.Data;
14 using WixToolset.Data.Tuples;
14 using WixToolset.Data.WindowsInstaller; 15 using WixToolset.Data.WindowsInstaller;
15 using WixToolset.Data.WindowsInstaller.Rows; 16 using WixToolset.Data.WindowsInstaller.Rows;
16 using WixToolset.Extensibility.Services; 17 using WixToolset.Extensibility.Services;
@@ -297,8 +298,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
297 throw new InvalidOperationException("Failed to fetch a File row from the database that was merged in from a module."); 298 throw new InvalidOperationException("Failed to fetch a File row from the database that was merged in from a module.");
298 } 299 }
299 300
300 //recordUpdate.SetInteger(1, file.File.Sequence); 301 recordUpdate.SetInteger(1, file.File.Sequence);
301 throw new NotImplementedException();
302 302
303 // Update the file attributes to match the compression specified 303 // Update the file attributes to match the compression specified
304 // on the Merge element or on the Package element. 304 // on the Merge element or on the Package element.
@@ -310,22 +310,21 @@ namespace WixToolset.Core.WindowsInstaller.Bind
310 attributes = recordUpdate.GetInteger(2); 310 attributes = recordUpdate.GetInteger(2);
311 } 311 }
312 312
313 if (!file.File.Compressed.HasValue) 313 if ((file.File.Attributes & FileTupleAttributes.Compressed) == FileTupleAttributes.Compressed)
314 {
315 // Clear all compression bits.
316 attributes &= ~WindowsInstallerConstants.MsidbFileAttributesCompressed;
317 attributes &= ~WindowsInstallerConstants.MsidbFileAttributesNoncompressed;
318 }
319 else if (file.File.Compressed.Value)
320 { 314 {
321 attributes |= WindowsInstallerConstants.MsidbFileAttributesCompressed; 315 attributes |= WindowsInstallerConstants.MsidbFileAttributesCompressed;
322 attributes &= ~WindowsInstallerConstants.MsidbFileAttributesNoncompressed; 316 attributes &= ~WindowsInstallerConstants.MsidbFileAttributesNoncompressed;
323 } 317 }
324 else if (!file.File.Compressed.Value) 318 else if ((file.File.Attributes & FileTupleAttributes.Uncompressed) == FileTupleAttributes.Uncompressed)
325 { 319 {
326 attributes |= WindowsInstallerConstants.MsidbFileAttributesNoncompressed; 320 attributes |= WindowsInstallerConstants.MsidbFileAttributesNoncompressed;
327 attributes &= ~WindowsInstallerConstants.MsidbFileAttributesCompressed; 321 attributes &= ~WindowsInstallerConstants.MsidbFileAttributesCompressed;
328 } 322 }
323 else // clear all compression bits.
324 {
325 attributes &= ~WindowsInstallerConstants.MsidbFileAttributesCompressed;
326 attributes &= ~WindowsInstallerConstants.MsidbFileAttributesNoncompressed;
327 }
329 328
330 recordUpdate.SetInteger(2, attributes); 329 recordUpdate.SetInteger(2, attributes);
331 330