diff options
| author | Rob Mensching <rob@firegiant.com> | 2017-11-11 01:45:59 -0800 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2017-11-11 01:45:59 -0800 |
| commit | 9f8cb5374481b6c8a06eb2739858332350f72666 (patch) | |
| tree | 4b09b90d8a516cb5e7d8203759bd2489b6a5d20c /src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs | |
| parent | 2bb37beda887d120a0ddabf874ad25357101faa1 (diff) | |
| download | wix-9f8cb5374481b6c8a06eb2739858332350f72666.tar.gz wix-9f8cb5374481b6c8a06eb2739858332350f72666.tar.bz2 wix-9f8cb5374481b6c8a06eb2739858332350f72666.zip | |
Additional IR updates
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs')
| -rw-r--r-- | src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs | 32 |
1 files changed, 10 insertions, 22 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs index f1605eca..dcf67c05 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs | |||
| @@ -1,20 +1,13 @@ | |||
| 1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | 1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. |
| 2 | 2 | ||
| 3 | namespace WixToolset.Core.WindowsInstaller.Databases | 3 | namespace WixToolset.Core.WindowsInstaller.Bind |
| 4 | { | 4 | { |
| 5 | using System; | 5 | using System; |
| 6 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 7 | using System.Collections.Specialized; | ||
| 8 | using System.ComponentModel; | ||
| 9 | using System.Diagnostics; | ||
| 10 | using System.Globalization; | 7 | using System.Globalization; |
| 11 | using System.IO; | 8 | using System.IO; |
| 12 | using System.Linq; | ||
| 13 | using System.Runtime.InteropServices; | 9 | using System.Runtime.InteropServices; |
| 14 | using System.Text; | 10 | using System.Text; |
| 15 | using System.Xml; | ||
| 16 | using System.Xml.XPath; | ||
| 17 | using WixToolset.Clr.Interop; | ||
| 18 | using WixToolset.Data; | 11 | using WixToolset.Data; |
| 19 | using WixToolset.Data.Rows; | 12 | using WixToolset.Data.Rows; |
| 20 | using WixToolset.MergeMod; | 13 | using WixToolset.MergeMod; |
| @@ -35,12 +28,10 @@ namespace WixToolset.Core.WindowsInstaller.Databases | |||
| 35 | 28 | ||
| 36 | public IEnumerable<string> SuppressedTableNames { private get; set; } | 29 | public IEnumerable<string> SuppressedTableNames { private get; set; } |
| 37 | 30 | ||
| 38 | public string TempFilesLocation { private get; set; } | 31 | public string IntermediateFolder { private get; set; } |
| 39 | 32 | ||
| 40 | public void Execute() | 33 | public void Execute() |
| 41 | { | 34 | { |
| 42 | Debug.Assert(OutputType.Product == this.Output.Type); | ||
| 43 | |||
| 44 | Table wixMergeTable = this.Output.Tables["WixMerge"]; | 35 | Table wixMergeTable = this.Output.Tables["WixMerge"]; |
| 45 | Table wixFeatureModulesTable = this.Output.Tables["WixFeatureModules"]; | 36 | Table wixFeatureModulesTable = this.Output.Tables["WixFeatureModules"]; |
| 46 | 37 | ||
| @@ -59,7 +50,7 @@ namespace WixToolset.Core.WindowsInstaller.Databases | |||
| 59 | { | 50 | { |
| 60 | merge = MsmInterop.GetMsmMerge(); | 51 | merge = MsmInterop.GetMsmMerge(); |
| 61 | 52 | ||
| 62 | logPath = Path.Combine(this.TempFilesLocation, "merge.log"); | 53 | logPath = Path.Combine(this.IntermediateFolder, "merge.log"); |
| 63 | merge.OpenLog(logPath); | 54 | merge.OpenLog(logPath); |
| 64 | logOpen = true; | 55 | logOpen = true; |
| 65 | 56 | ||
| @@ -79,7 +70,7 @@ namespace WixToolset.Core.WindowsInstaller.Databases | |||
| 79 | { | 70 | { |
| 80 | mergeLanguage = Convert.ToInt16(wixMergeRow.Language, CultureInfo.InvariantCulture); | 71 | mergeLanguage = Convert.ToInt16(wixMergeRow.Language, CultureInfo.InvariantCulture); |
| 81 | } | 72 | } |
| 82 | catch (System.FormatException) | 73 | catch (FormatException) |
| 83 | { | 74 | { |
| 84 | Messaging.Instance.OnMessage(WixErrors.InvalidMergeLanguage(wixMergeRow.SourceLineNumbers, wixMergeRow.Id, wixMergeRow.Language)); | 75 | Messaging.Instance.OnMessage(WixErrors.InvalidMergeLanguage(wixMergeRow.SourceLineNumbers, wixMergeRow.Id, wixMergeRow.Language)); |
| 85 | continue; | 76 | continue; |
| @@ -284,7 +275,7 @@ namespace WixToolset.Core.WindowsInstaller.Databases | |||
| 284 | Messaging.Instance.OnMessage(WixVerboses.ResequencingMergeModuleFiles()); | 275 | Messaging.Instance.OnMessage(WixVerboses.ResequencingMergeModuleFiles()); |
| 285 | using (View view = db.OpenView("SELECT `Sequence`, `Attributes` FROM `File` WHERE `File`=?")) | 276 | using (View view = db.OpenView("SELECT `Sequence`, `Attributes` FROM `File` WHERE `File`=?")) |
| 286 | { | 277 | { |
| 287 | foreach (FileFacade file in this.FileFacades) | 278 | foreach (var file in this.FileFacades) |
| 288 | { | 279 | { |
| 289 | if (!file.FromModule) | 280 | if (!file.FromModule) |
| 290 | { | 281 | { |
| @@ -307,32 +298,29 @@ namespace WixToolset.Core.WindowsInstaller.Databases | |||
| 307 | //recordUpdate.SetInteger(1, file.File.Sequence); | 298 | //recordUpdate.SetInteger(1, file.File.Sequence); |
| 308 | throw new NotImplementedException(); | 299 | throw new NotImplementedException(); |
| 309 | 300 | ||
| 310 | // update the file attributes to match the compression specified | 301 | // Update the file attributes to match the compression specified |
| 311 | // on the Merge element or on the Package element | 302 | // on the Merge element or on the Package element. |
| 312 | int attributes = 0; | 303 | var attributes = 0; |
| 313 | 304 | ||
| 314 | // get the current value if its not null | 305 | // Get the current value if its not null. |
| 315 | if (!recordUpdate.IsNull(2)) | 306 | if (!recordUpdate.IsNull(2)) |
| 316 | { | 307 | { |
| 317 | attributes = recordUpdate.GetInteger(2); | 308 | attributes = recordUpdate.GetInteger(2); |
| 318 | } | 309 | } |
| 319 | 310 | ||
| 320 | // not specified | ||
| 321 | if (!file.File.Compressed.HasValue) | 311 | if (!file.File.Compressed.HasValue) |
| 322 | { | 312 | { |
| 323 | // clear any compression bits | 313 | // Clear all compression bits. |
| 324 | attributes &= ~MsiInterop.MsidbFileAttributesCompressed; | 314 | attributes &= ~MsiInterop.MsidbFileAttributesCompressed; |
| 325 | attributes &= ~MsiInterop.MsidbFileAttributesNoncompressed; | 315 | attributes &= ~MsiInterop.MsidbFileAttributesNoncompressed; |
| 326 | } | 316 | } |
| 327 | else if (file.File.Compressed.Value) | 317 | else if (file.File.Compressed.Value) |
| 328 | { | 318 | { |
| 329 | // these are mutually exclusive | ||
| 330 | attributes |= MsiInterop.MsidbFileAttributesCompressed; | 319 | attributes |= MsiInterop.MsidbFileAttributesCompressed; |
| 331 | attributes &= ~MsiInterop.MsidbFileAttributesNoncompressed; | 320 | attributes &= ~MsiInterop.MsidbFileAttributesNoncompressed; |
| 332 | } | 321 | } |
| 333 | else if (!file.File.Compressed.Value) | 322 | else if (!file.File.Compressed.Value) |
| 334 | { | 323 | { |
| 335 | // these are mutually exclusive | ||
| 336 | attributes |= MsiInterop.MsidbFileAttributesNoncompressed; | 324 | attributes |= MsiInterop.MsidbFileAttributesNoncompressed; |
| 337 | attributes &= ~MsiInterop.MsidbFileAttributesCompressed; | 325 | attributes &= ~MsiInterop.MsidbFileAttributesCompressed; |
| 338 | } | 326 | } |
