diff options
| author | Rob Mensching <rob@firegiant.com> | 2020-06-25 14:43:50 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2020-06-25 14:50:31 -0700 |
| commit | 38afa9e7bc7eacc021f8805f607368a05751e3c3 (patch) | |
| tree | 803b0a8d9a06a7d6f7c4df408437017ae21a883e /src/WixToolset.Core.WindowsInstaller/Bind | |
| parent | 8968578d50858721317d410549a9f9b5c62bf1f7 (diff) | |
| download | wix-38afa9e7bc7eacc021f8805f607368a05751e3c3.tar.gz wix-38afa9e7bc7eacc021f8805f607368a05751e3c3.tar.bz2 wix-38afa9e7bc7eacc021f8805f607368a05751e3c3.zip | |
The Great Tuple to Symbol Rename (tm)
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/Bind')
28 files changed, 1088 insertions, 1088 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/AddBackSuppressedSequenceTablesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/AddBackSuppressedSequenceTablesCommand.cs index d83e3684..cbba6030 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/AddBackSuppressedSequenceTablesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/AddBackSuppressedSequenceTablesCommand.cs | |||
| @@ -4,7 +4,7 @@ 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 WixToolset.Data.Tuples; | 7 | using WixToolset.Data.Symbols; |
| 8 | using WixToolset.Data.WindowsInstaller; | 8 | using WixToolset.Data.WindowsInstaller; |
| 9 | 9 | ||
| 10 | /// <summary> | 10 | /// <summary> |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/AddCreateFoldersCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/AddCreateFoldersCommand.cs index ba844da4..c4fddb3e 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/AddCreateFoldersCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/AddCreateFoldersCommand.cs | |||
| @@ -5,10 +5,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 5 | using System.Collections.Generic; | 5 | using System.Collections.Generic; |
| 6 | using System.Linq; | 6 | using System.Linq; |
| 7 | using WixToolset.Data; | 7 | using WixToolset.Data; |
| 8 | using WixToolset.Data.Tuples; | 8 | using WixToolset.Data.Symbols; |
| 9 | 9 | ||
| 10 | /// <summary> | 10 | /// <summary> |
| 11 | /// Add CreateFolder tuples, if not already present, for null-keypath components. | 11 | /// Add CreateFolder symbols, if not already present, for null-keypath components. |
| 12 | /// </summary> | 12 | /// </summary> |
| 13 | internal class AddCreateFoldersCommand | 13 | internal class AddCreateFoldersCommand |
| 14 | { | 14 | { |
| @@ -21,15 +21,15 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 21 | 21 | ||
| 22 | public void Execute() | 22 | public void Execute() |
| 23 | { | 23 | { |
| 24 | var createFolderTuplesByComponentRef = new HashSet<string>(this.Section.Tuples.OfType<CreateFolderTuple>().Select(t => t.ComponentRef)); | 24 | var createFolderSymbolsByComponentRef = new HashSet<string>(this.Section.Symbols.OfType<CreateFolderSymbol>().Select(t => t.ComponentRef)); |
| 25 | foreach (var componentTuple in this.Section.Tuples.OfType<ComponentTuple>().Where(t => t.KeyPathType == ComponentKeyPathType.Directory).ToList()) | 25 | foreach (var componentSymbol in this.Section.Symbols.OfType<ComponentSymbol>().Where(t => t.KeyPathType == ComponentKeyPathType.Directory).ToList()) |
| 26 | { | 26 | { |
| 27 | if (!createFolderTuplesByComponentRef.Contains(componentTuple.Id.Id)) | 27 | if (!createFolderSymbolsByComponentRef.Contains(componentSymbol.Id.Id)) |
| 28 | { | 28 | { |
| 29 | this.Section.AddTuple(new CreateFolderTuple(componentTuple.SourceLineNumbers) | 29 | this.Section.AddSymbol(new CreateFolderSymbol(componentSymbol.SourceLineNumbers) |
| 30 | { | 30 | { |
| 31 | DirectoryRef = componentTuple.DirectoryRef, | 31 | DirectoryRef = componentSymbol.DirectoryRef, |
| 32 | ComponentRef = componentTuple.Id.Id, | 32 | ComponentRef = componentSymbol.Id.Id, |
| 33 | }); | 33 | }); |
| 34 | } | 34 | } |
| 35 | } | 35 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs index 773b3225..eccc97d2 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs | |||
| @@ -8,7 +8,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 8 | using System.Linq; | 8 | using System.Linq; |
| 9 | using WixToolset.Core.Bind; | 9 | using WixToolset.Core.Bind; |
| 10 | using WixToolset.Data; | 10 | using WixToolset.Data; |
| 11 | using WixToolset.Data.Tuples; | 11 | using WixToolset.Data.Symbols; |
| 12 | using WixToolset.Extensibility.Services; | 12 | using WixToolset.Extensibility.Services; |
| 13 | 13 | ||
| 14 | /// <summary> | 14 | /// <summary> |
| @@ -40,7 +40,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 40 | /// <summary> | 40 | /// <summary> |
| 41 | /// Gets cabinets with their file rows. | 41 | /// Gets cabinets with their file rows. |
| 42 | /// </summary> | 42 | /// </summary> |
| 43 | public Dictionary<MediaTuple, IEnumerable<FileFacade>> FileFacadesByCabinetMedia { get; private set; } | 43 | public Dictionary<MediaSymbol, IEnumerable<FileFacade>> FileFacadesByCabinetMedia { get; private set; } |
| 44 | 44 | ||
| 45 | /// <summary> | 45 | /// <summary> |
| 46 | /// Get uncompressed file rows. This will contain file rows of File elements that are marked with compression=no. | 46 | /// Get uncompressed file rows. This will contain file rows of File elements that are marked with compression=no. |
| @@ -50,49 +50,49 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 50 | 50 | ||
| 51 | public void Execute() | 51 | public void Execute() |
| 52 | { | 52 | { |
| 53 | var mediaTuples = this.Section.Tuples.OfType<MediaTuple>().ToList(); | 53 | var mediaSymbols = this.Section.Symbols.OfType<MediaSymbol>().ToList(); |
| 54 | var mediaTemplateTuples = this.Section.Tuples.OfType<WixMediaTemplateTuple>().ToList(); | 54 | var mediaTemplateSymbols = this.Section.Symbols.OfType<WixMediaTemplateSymbol>().ToList(); |
| 55 | 55 | ||
| 56 | // If both tuples are authored, it is an error. | 56 | // If both symbols are authored, it is an error. |
| 57 | if (mediaTemplateTuples.Count > 0 && mediaTuples.Count > 1) | 57 | if (mediaTemplateSymbols.Count > 0 && mediaSymbols.Count > 1) |
| 58 | { | 58 | { |
| 59 | throw new WixException(ErrorMessages.MediaTableCollision(null)); | 59 | throw new WixException(ErrorMessages.MediaTableCollision(null)); |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | // If neither tuple is authored, default to a media template. | 62 | // If neither symbol is authored, default to a media template. |
| 63 | if (SectionType.Product == this.Section.Type && mediaTemplateTuples.Count == 0 && mediaTuples.Count == 0) | 63 | if (SectionType.Product == this.Section.Type && mediaTemplateSymbols.Count == 0 && mediaSymbols.Count == 0) |
| 64 | { | 64 | { |
| 65 | var mediaTemplate = new WixMediaTemplateTuple() | 65 | var mediaTemplate = new WixMediaTemplateSymbol() |
| 66 | { | 66 | { |
| 67 | CabinetTemplate = "cab{0}.cab", | 67 | CabinetTemplate = "cab{0}.cab", |
| 68 | }; | 68 | }; |
| 69 | 69 | ||
| 70 | this.Section.AddTuple(mediaTemplate); | 70 | this.Section.AddSymbol(mediaTemplate); |
| 71 | mediaTemplateTuples.Add(mediaTemplate); | 71 | mediaTemplateSymbols.Add(mediaTemplate); |
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | // When building merge module, all the files go to "#MergeModule.CABinet". | 74 | // When building merge module, all the files go to "#MergeModule.CABinet". |
| 75 | if (SectionType.Module == this.Section.Type) | 75 | if (SectionType.Module == this.Section.Type) |
| 76 | { | 76 | { |
| 77 | var mergeModuleMediaTuple = this.Section.AddTuple(new MediaTuple | 77 | var mergeModuleMediaSymbol = this.Section.AddSymbol(new MediaSymbol |
| 78 | { | 78 | { |
| 79 | Cabinet = "#MergeModule.CABinet", | 79 | Cabinet = "#MergeModule.CABinet", |
| 80 | }); | 80 | }); |
| 81 | 81 | ||
| 82 | this.FileFacadesByCabinetMedia = new Dictionary<MediaTuple, IEnumerable<FileFacade>> | 82 | this.FileFacadesByCabinetMedia = new Dictionary<MediaSymbol, IEnumerable<FileFacade>> |
| 83 | { | 83 | { |
| 84 | { mergeModuleMediaTuple, this.FileFacades } | 84 | { mergeModuleMediaSymbol, this.FileFacades } |
| 85 | }; | 85 | }; |
| 86 | 86 | ||
| 87 | this.UncompressedFileFacades = Array.Empty<FileFacade>(); | 87 | this.UncompressedFileFacades = Array.Empty<FileFacade>(); |
| 88 | } | 88 | } |
| 89 | else if (mediaTemplateTuples.Count == 0) | 89 | else if (mediaTemplateSymbols.Count == 0) |
| 90 | { | 90 | { |
| 91 | var filesByCabinetMedia = new Dictionary<MediaTuple, List<FileFacade>>(); | 91 | var filesByCabinetMedia = new Dictionary<MediaSymbol, List<FileFacade>>(); |
| 92 | 92 | ||
| 93 | var uncompressedFiles = new List<FileFacade>(); | 93 | var uncompressedFiles = new List<FileFacade>(); |
| 94 | 94 | ||
| 95 | this.ManuallyAssignFiles(mediaTuples, filesByCabinetMedia, uncompressedFiles); | 95 | this.ManuallyAssignFiles(mediaSymbols, filesByCabinetMedia, uncompressedFiles); |
| 96 | 96 | ||
| 97 | this.FileFacadesByCabinetMedia = filesByCabinetMedia.ToDictionary(kvp => kvp.Key, kvp => (IEnumerable<FileFacade>)kvp.Value); | 97 | this.FileFacadesByCabinetMedia = filesByCabinetMedia.ToDictionary(kvp => kvp.Key, kvp => (IEnumerable<FileFacade>)kvp.Value); |
| 98 | 98 | ||
| @@ -100,11 +100,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 100 | } | 100 | } |
| 101 | else | 101 | else |
| 102 | { | 102 | { |
| 103 | var filesByCabinetMedia = new Dictionary<MediaTuple, List<FileFacade>>(); | 103 | var filesByCabinetMedia = new Dictionary<MediaSymbol, List<FileFacade>>(); |
| 104 | 104 | ||
| 105 | var uncompressedFiles = new List<FileFacade>(); | 105 | var uncompressedFiles = new List<FileFacade>(); |
| 106 | 106 | ||
| 107 | this.AutoAssignFiles(mediaTuples, filesByCabinetMedia, uncompressedFiles); | 107 | this.AutoAssignFiles(mediaSymbols, filesByCabinetMedia, uncompressedFiles); |
| 108 | 108 | ||
| 109 | this.FileFacadesByCabinetMedia = filesByCabinetMedia.ToDictionary(kvp => kvp.Key, kvp => (IEnumerable<FileFacade>)kvp.Value); | 109 | this.FileFacadesByCabinetMedia = filesByCabinetMedia.ToDictionary(kvp => kvp.Key, kvp => (IEnumerable<FileFacade>)kvp.Value); |
| 110 | 110 | ||
| @@ -116,7 +116,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 116 | /// Assign files to cabinets based on MediaTemplate authoring. | 116 | /// Assign files to cabinets based on MediaTemplate authoring. |
| 117 | /// </summary> | 117 | /// </summary> |
| 118 | /// <param name="fileFacades">FileRowCollection</param> | 118 | /// <param name="fileFacades">FileRowCollection</param> |
| 119 | private void AutoAssignFiles(List<MediaTuple> mediaTable, Dictionary<MediaTuple, List<FileFacade>> filesByCabinetMedia, List<FileFacade> uncompressedFiles) | 119 | private void AutoAssignFiles(List<MediaSymbol> mediaTable, Dictionary<MediaSymbol, List<FileFacade>> filesByCabinetMedia, List<FileFacade> uncompressedFiles) |
| 120 | { | 120 | { |
| 121 | const int MaxCabIndex = 999; | 121 | const int MaxCabIndex = 999; |
| 122 | 122 | ||
| @@ -125,15 +125,15 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 125 | var maxPreCabSizeInMB = 0; | 125 | var maxPreCabSizeInMB = 0; |
| 126 | var currentCabIndex = 0; | 126 | var currentCabIndex = 0; |
| 127 | 127 | ||
| 128 | MediaTuple currentMediaRow = null; | 128 | MediaSymbol currentMediaRow = null; |
| 129 | 129 | ||
| 130 | var mediaTemplateTable = this.Section.Tuples.OfType<WixMediaTemplateTuple>(); | 130 | var mediaTemplateTable = this.Section.Symbols.OfType<WixMediaTemplateSymbol>(); |
| 131 | 131 | ||
| 132 | // Remove all previous media tuples since they will be replaced with | 132 | // Remove all previous media symbols since they will be replaced with |
| 133 | // media template. | 133 | // media template. |
| 134 | foreach (var mediaTuple in mediaTable) | 134 | foreach (var mediaSymbol in mediaTable) |
| 135 | { | 135 | { |
| 136 | this.Section.Tuples.Remove(mediaTuple); | 136 | this.Section.Symbols.Remove(mediaSymbol); |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | // Auto assign files to cabinets based on maximum uncompressed media size | 139 | // Auto assign files to cabinets based on maximum uncompressed media size |
| @@ -169,7 +169,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 169 | throw new WixException(ErrorMessages.MaximumUncompressedMediaSizeTooLarge(null, maxPreCabSizeInMB)); | 169 | throw new WixException(ErrorMessages.MaximumUncompressedMediaSizeTooLarge(null, maxPreCabSizeInMB)); |
| 170 | } | 170 | } |
| 171 | 171 | ||
| 172 | var mediaTuplesByDiskId = new Dictionary<int, MediaTuple>(); | 172 | var mediaSymbolsByDiskId = new Dictionary<int, MediaSymbol>(); |
| 173 | 173 | ||
| 174 | foreach (var facade in this.FileFacades) | 174 | foreach (var facade in this.FileFacades) |
| 175 | { | 175 | { |
| @@ -193,8 +193,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 193 | // Overflow due to current file | 193 | // Overflow due to current file |
| 194 | if (currentPreCabSize > maxPreCabSizeInBytes) | 194 | if (currentPreCabSize > maxPreCabSizeInBytes) |
| 195 | { | 195 | { |
| 196 | currentMediaRow = this.AddMediaTuple(mediaTemplateRow, ++currentCabIndex); | 196 | currentMediaRow = this.AddMediaSymbol(mediaTemplateRow, ++currentCabIndex); |
| 197 | mediaTuplesByDiskId.Add(currentMediaRow.DiskId, currentMediaRow); | 197 | mediaSymbolsByDiskId.Add(currentMediaRow.DiskId, currentMediaRow); |
| 198 | filesByCabinetMedia.Add(currentMediaRow, new List<FileFacade>()); | 198 | filesByCabinetMedia.Add(currentMediaRow, new List<FileFacade>()); |
| 199 | 199 | ||
| 200 | // Now files larger than MaxUncompressedMediaSize will be the only file in its cabinet so as to respect MaxUncompressedMediaSize | 200 | // Now files larger than MaxUncompressedMediaSize will be the only file in its cabinet so as to respect MaxUncompressedMediaSize |
| @@ -205,8 +205,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 205 | if (currentMediaRow == null) | 205 | if (currentMediaRow == null) |
| 206 | { | 206 | { |
| 207 | // Create new cab and MediaRow | 207 | // Create new cab and MediaRow |
| 208 | currentMediaRow = this.AddMediaTuple(mediaTemplateRow, ++currentCabIndex); | 208 | currentMediaRow = this.AddMediaSymbol(mediaTemplateRow, ++currentCabIndex); |
| 209 | mediaTuplesByDiskId.Add(currentMediaRow.DiskId, currentMediaRow); | 209 | mediaSymbolsByDiskId.Add(currentMediaRow.DiskId, currentMediaRow); |
| 210 | filesByCabinetMedia.Add(currentMediaRow, new List<FileFacade>()); | 210 | filesByCabinetMedia.Add(currentMediaRow, new List<FileFacade>()); |
| 211 | } | 211 | } |
| 212 | } | 212 | } |
| @@ -219,52 +219,52 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 219 | } | 219 | } |
| 220 | 220 | ||
| 221 | // If there are uncompressed files and no MediaRow, create a default one. | 221 | // If there are uncompressed files and no MediaRow, create a default one. |
| 222 | if (uncompressedFiles.Count > 0 && !this.Section.Tuples.OfType<MediaTuple>().Any()) | 222 | if (uncompressedFiles.Count > 0 && !this.Section.Symbols.OfType<MediaSymbol>().Any()) |
| 223 | { | 223 | { |
| 224 | var defaultMediaRow = this.Section.AddTuple(new MediaTuple(null, new Identifier(AccessModifier.Private, 1)) | 224 | var defaultMediaRow = this.Section.AddSymbol(new MediaSymbol(null, new Identifier(AccessModifier.Private, 1)) |
| 225 | { | 225 | { |
| 226 | DiskId = 1, | 226 | DiskId = 1, |
| 227 | }); | 227 | }); |
| 228 | 228 | ||
| 229 | mediaTuplesByDiskId.Add(1, defaultMediaRow); | 229 | mediaSymbolsByDiskId.Add(1, defaultMediaRow); |
| 230 | } | 230 | } |
| 231 | } | 231 | } |
| 232 | 232 | ||
| 233 | /// <summary> | 233 | /// <summary> |
| 234 | /// Assign files to cabinets based on Media authoring. | 234 | /// Assign files to cabinets based on Media authoring. |
| 235 | /// </summary> | 235 | /// </summary> |
| 236 | private void ManuallyAssignFiles(List<MediaTuple> mediaTuples, Dictionary<MediaTuple, List<FileFacade>> filesByCabinetMedia, List<FileFacade> uncompressedFiles) | 236 | private void ManuallyAssignFiles(List<MediaSymbol> mediaSymbols, Dictionary<MediaSymbol, List<FileFacade>> filesByCabinetMedia, List<FileFacade> uncompressedFiles) |
| 237 | { | 237 | { |
| 238 | var mediaTuplesByDiskId = new Dictionary<int, MediaTuple>(); | 238 | var mediaSymbolsByDiskId = new Dictionary<int, MediaSymbol>(); |
| 239 | 239 | ||
| 240 | if (mediaTuples.Any()) | 240 | if (mediaSymbols.Any()) |
| 241 | { | 241 | { |
| 242 | var cabinetMediaTuples = new Dictionary<string, MediaTuple>(StringComparer.OrdinalIgnoreCase); | 242 | var cabinetMediaSymbols = new Dictionary<string, MediaSymbol>(StringComparer.OrdinalIgnoreCase); |
| 243 | foreach (var mediaTuple in mediaTuples) | 243 | foreach (var mediaSymbol in mediaSymbols) |
| 244 | { | 244 | { |
| 245 | // If the Media row has a cabinet, make sure it is unique across all Media rows. | 245 | // If the Media row has a cabinet, make sure it is unique across all Media rows. |
| 246 | if (!String.IsNullOrEmpty(mediaTuple.Cabinet)) | 246 | if (!String.IsNullOrEmpty(mediaSymbol.Cabinet)) |
| 247 | { | 247 | { |
| 248 | if (cabinetMediaTuples.TryGetValue(mediaTuple.Cabinet, out var existingRow)) | 248 | if (cabinetMediaSymbols.TryGetValue(mediaSymbol.Cabinet, out var existingRow)) |
| 249 | { | 249 | { |
| 250 | this.Messaging.Write(ErrorMessages.DuplicateCabinetName(mediaTuple.SourceLineNumbers, mediaTuple.Cabinet)); | 250 | this.Messaging.Write(ErrorMessages.DuplicateCabinetName(mediaSymbol.SourceLineNumbers, mediaSymbol.Cabinet)); |
| 251 | this.Messaging.Write(ErrorMessages.DuplicateCabinetName2(existingRow.SourceLineNumbers, existingRow.Cabinet)); | 251 | this.Messaging.Write(ErrorMessages.DuplicateCabinetName2(existingRow.SourceLineNumbers, existingRow.Cabinet)); |
| 252 | } | 252 | } |
| 253 | else | 253 | else |
| 254 | { | 254 | { |
| 255 | cabinetMediaTuples.Add(mediaTuple.Cabinet, mediaTuple); | 255 | cabinetMediaSymbols.Add(mediaSymbol.Cabinet, mediaSymbol); |
| 256 | } | 256 | } |
| 257 | 257 | ||
| 258 | filesByCabinetMedia.Add(mediaTuple, new List<FileFacade>()); | 258 | filesByCabinetMedia.Add(mediaSymbol, new List<FileFacade>()); |
| 259 | } | 259 | } |
| 260 | 260 | ||
| 261 | mediaTuplesByDiskId.Add(mediaTuple.DiskId, mediaTuple); | 261 | mediaSymbolsByDiskId.Add(mediaSymbol.DiskId, mediaSymbol); |
| 262 | } | 262 | } |
| 263 | } | 263 | } |
| 264 | 264 | ||
| 265 | foreach (var facade in this.FileFacades) | 265 | foreach (var facade in this.FileFacades) |
| 266 | { | 266 | { |
| 267 | if (!mediaTuplesByDiskId.TryGetValue(facade.DiskId, out var mediaTuple)) | 267 | if (!mediaSymbolsByDiskId.TryGetValue(facade.DiskId, out var mediaSymbol)) |
| 268 | { | 268 | { |
| 269 | this.Messaging.Write(ErrorMessages.MissingMedia(facade.SourceLineNumber, facade.DiskId)); | 269 | this.Messaging.Write(ErrorMessages.MissingMedia(facade.SourceLineNumber, facade.DiskId)); |
| 270 | continue; | 270 | continue; |
| @@ -280,7 +280,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 280 | } | 280 | } |
| 281 | else // file is marked compressed. | 281 | else // file is marked compressed. |
| 282 | { | 282 | { |
| 283 | if (filesByCabinetMedia.TryGetValue(mediaTuple, out var cabinetFiles)) | 283 | if (filesByCabinetMedia.TryGetValue(mediaSymbol, out var cabinetFiles)) |
| 284 | { | 284 | { |
| 285 | cabinetFiles.Add(facade); | 285 | cabinetFiles.Add(facade); |
| 286 | } | 286 | } |
| @@ -293,18 +293,18 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 293 | } | 293 | } |
| 294 | 294 | ||
| 295 | /// <summary> | 295 | /// <summary> |
| 296 | /// Adds a tuple to the section with cab name template filled in. | 296 | /// Adds a symbol to the section with cab name template filled in. |
| 297 | /// </summary> | 297 | /// </summary> |
| 298 | /// <param name="mediaTable"></param> | 298 | /// <param name="mediaTable"></param> |
| 299 | /// <param name="cabIndex"></param> | 299 | /// <param name="cabIndex"></param> |
| 300 | /// <returns></returns> | 300 | /// <returns></returns> |
| 301 | private MediaTuple AddMediaTuple(WixMediaTemplateTuple mediaTemplateTuple, int cabIndex) | 301 | private MediaSymbol AddMediaSymbol(WixMediaTemplateSymbol mediaTemplateSymbol, int cabIndex) |
| 302 | { | 302 | { |
| 303 | return this.Section.AddTuple(new MediaTuple(mediaTemplateTuple.SourceLineNumbers, new Identifier(AccessModifier.Private, cabIndex)) | 303 | return this.Section.AddSymbol(new MediaSymbol(mediaTemplateSymbol.SourceLineNumbers, new Identifier(AccessModifier.Private, cabIndex)) |
| 304 | { | 304 | { |
| 305 | DiskId = cabIndex, | 305 | DiskId = cabIndex, |
| 306 | Cabinet = String.Format(CultureInfo.InvariantCulture, this.CabinetNameTemplate, cabIndex), | 306 | Cabinet = String.Format(CultureInfo.InvariantCulture, this.CabinetNameTemplate, cabIndex), |
| 307 | CompressionLevel = mediaTemplateTuple.CompressionLevel, | 307 | CompressionLevel = mediaTemplateSymbol.CompressionLevel, |
| 308 | }); | 308 | }); |
| 309 | } | 309 | } |
| 310 | } | 310 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/AttachPatchTransformsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/AttachPatchTransformsCommand.cs index a16bafd7..51f1f81a 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/AttachPatchTransformsCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/AttachPatchTransformsCommand.cs | |||
| @@ -9,7 +9,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 9 | using System.Text.RegularExpressions; | 9 | using System.Text.RegularExpressions; |
| 10 | using WixToolset.Core.WindowsInstaller.Msi; | 10 | using WixToolset.Core.WindowsInstaller.Msi; |
| 11 | using WixToolset.Data; | 11 | using WixToolset.Data; |
| 12 | using WixToolset.Data.Tuples; | 12 | using WixToolset.Data.Symbols; |
| 13 | using WixToolset.Data.WindowsInstaller; | 13 | using WixToolset.Data.WindowsInstaller; |
| 14 | using WixToolset.Data.WindowsInstaller.Rows; | 14 | using WixToolset.Data.WindowsInstaller.Rows; |
| 15 | using WixToolset.Extensibility.Services; | 15 | using WixToolset.Extensibility.Services; |
| @@ -85,25 +85,25 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 85 | 85 | ||
| 86 | var section = this.Intermediate.Sections.First(); | 86 | var section = this.Intermediate.Sections.First(); |
| 87 | 87 | ||
| 88 | var tuples = this.Intermediate.Sections.SelectMany(s => s.Tuples).ToList(); | 88 | var symbols = this.Intermediate.Sections.SelectMany(s => s.Symbols).ToList(); |
| 89 | 89 | ||
| 90 | // Get the patch id from the WixPatchId tuple. | 90 | // Get the patch id from the WixPatchId symbol. |
| 91 | var patchIdTuple = tuples.OfType<WixPatchIdTuple>().FirstOrDefault(); | 91 | var patchIdSymbol = symbols.OfType<WixPatchIdSymbol>().FirstOrDefault(); |
| 92 | 92 | ||
| 93 | if (String.IsNullOrEmpty(patchIdTuple.Id?.Id)) | 93 | if (String.IsNullOrEmpty(patchIdSymbol.Id?.Id)) |
| 94 | { | 94 | { |
| 95 | this.Messaging.Write(ErrorMessages.ExpectedPatchIdInWixMsp()); | 95 | this.Messaging.Write(ErrorMessages.ExpectedPatchIdInWixMsp()); |
| 96 | return subStorages; | 96 | return subStorages; |
| 97 | } | 97 | } |
| 98 | 98 | ||
| 99 | if (String.IsNullOrEmpty(patchIdTuple.ClientPatchId)) | 99 | if (String.IsNullOrEmpty(patchIdSymbol.ClientPatchId)) |
| 100 | { | 100 | { |
| 101 | this.Messaging.Write(ErrorMessages.ExpectedClientPatchIdInWixMsp()); | 101 | this.Messaging.Write(ErrorMessages.ExpectedClientPatchIdInWixMsp()); |
| 102 | return subStorages; | 102 | return subStorages; |
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | // enumerate patch.Media to map diskId to Media row | 105 | // enumerate patch.Media to map diskId to Media row |
| 106 | var patchMediaByDiskId = tuples.OfType<MediaTuple>().ToDictionary(t => t.DiskId); | 106 | var patchMediaByDiskId = symbols.OfType<MediaSymbol>().ToDictionary(t => t.DiskId); |
| 107 | 107 | ||
| 108 | if (patchMediaByDiskId.Count == 0) | 108 | if (patchMediaByDiskId.Count == 0) |
| 109 | { | 109 | { |
| @@ -112,23 +112,23 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 112 | } | 112 | } |
| 113 | 113 | ||
| 114 | // populate MSP summary information | 114 | // populate MSP summary information |
| 115 | var patchMetadata = this.PopulateSummaryInformation(summaryInfo, tuples, patchIdTuple, section.Codepage); | 115 | var patchMetadata = this.PopulateSummaryInformation(summaryInfo, symbols, patchIdSymbol, section.Codepage); |
| 116 | 116 | ||
| 117 | // enumerate transforms | 117 | // enumerate transforms |
| 118 | var productCodes = new SortedSet<string>(); | 118 | var productCodes = new SortedSet<string>(); |
| 119 | var transformNames = new List<string>(); | 119 | var transformNames = new List<string>(); |
| 120 | var validTransform = new List<Tuple<string, WindowsInstallerData>>(); | 120 | var validTransform = new List<Tuple<string, WindowsInstallerData>>(); |
| 121 | 121 | ||
| 122 | var baselineTuplesById = tuples.OfType<WixPatchBaselineTuple>().ToDictionary(t => t.Id.Id); | 122 | var baselineSymbolsById = symbols.OfType<WixPatchBaselineSymbol>().ToDictionary(t => t.Id.Id); |
| 123 | 123 | ||
| 124 | foreach (var mainTransform in this.Transforms) | 124 | foreach (var mainTransform in this.Transforms) |
| 125 | { | 125 | { |
| 126 | var baselineTuple = baselineTuplesById[mainTransform.Baseline]; | 126 | var baselineSymbol = baselineSymbolsById[mainTransform.Baseline]; |
| 127 | 127 | ||
| 128 | var patchRefTuples = tuples.OfType<WixPatchRefTuple>().ToList(); | 128 | var patchRefSymbols = symbols.OfType<WixPatchRefSymbol>().ToList(); |
| 129 | if (patchRefTuples.Count > 0) | 129 | if (patchRefSymbols.Count > 0) |
| 130 | { | 130 | { |
| 131 | if (!this.ReduceTransform(mainTransform.Transform, patchRefTuples)) | 131 | if (!this.ReduceTransform(mainTransform.Transform, patchRefSymbols)) |
| 132 | { | 132 | { |
| 133 | // transform has none of the content authored into this patch | 133 | // transform has none of the content authored into this patch |
| 134 | continue; | 134 | continue; |
| @@ -139,7 +139,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 139 | this.Validate(mainTransform); | 139 | this.Validate(mainTransform); |
| 140 | 140 | ||
| 141 | // ensure consistent File.Sequence within each Media | 141 | // ensure consistent File.Sequence within each Media |
| 142 | var mediaTuple = patchMediaByDiskId[baselineTuple.DiskId]; | 142 | var mediaSymbol = patchMediaByDiskId[baselineSymbol.DiskId]; |
| 143 | 143 | ||
| 144 | // Ensure that files are sequenced after the last file in any transform. | 144 | // Ensure that files are sequenced after the last file in any transform. |
| 145 | var transformMediaTable = mainTransform.Transform.Tables["Media"]; | 145 | var transformMediaTable = mainTransform.Transform.Tables["Media"]; |
| @@ -147,25 +147,25 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 147 | { | 147 | { |
| 148 | foreach (MediaRow transformMediaRow in transformMediaTable.Rows) | 148 | foreach (MediaRow transformMediaRow in transformMediaTable.Rows) |
| 149 | { | 149 | { |
| 150 | if (!mediaTuple.LastSequence.HasValue || mediaTuple.LastSequence < transformMediaRow.LastSequence) | 150 | if (!mediaSymbol.LastSequence.HasValue || mediaSymbol.LastSequence < transformMediaRow.LastSequence) |
| 151 | { | 151 | { |
| 152 | // The Binder will pre-increment the sequence. | 152 | // The Binder will pre-increment the sequence. |
| 153 | mediaTuple.LastSequence = transformMediaRow.LastSequence; | 153 | mediaSymbol.LastSequence = transformMediaRow.LastSequence; |
| 154 | } | 154 | } |
| 155 | } | 155 | } |
| 156 | } | 156 | } |
| 157 | 157 | ||
| 158 | // Use the Media/@DiskId if greater than the last sequence for backward compatibility. | 158 | // Use the Media/@DiskId if greater than the last sequence for backward compatibility. |
| 159 | if (!mediaTuple.LastSequence.HasValue || mediaTuple.LastSequence < mediaTuple.DiskId) | 159 | if (!mediaSymbol.LastSequence.HasValue || mediaSymbol.LastSequence < mediaSymbol.DiskId) |
| 160 | { | 160 | { |
| 161 | mediaTuple.LastSequence = mediaTuple.DiskId; | 161 | mediaSymbol.LastSequence = mediaSymbol.DiskId; |
| 162 | } | 162 | } |
| 163 | 163 | ||
| 164 | // Ignore media table in the transform. | 164 | // Ignore media table in the transform. |
| 165 | mainTransform.Transform.Tables.Remove("Media"); | 165 | mainTransform.Transform.Tables.Remove("Media"); |
| 166 | mainTransform.Transform.Tables.Remove("MsiDigitalSignature"); | 166 | mainTransform.Transform.Tables.Remove("MsiDigitalSignature"); |
| 167 | 167 | ||
| 168 | var pairedTransform = this.BuildPairedTransform(summaryInfo, patchMetadata, patchIdTuple, mainTransform.Transform, mediaTuple, baselineTuple, out var productCode); | 168 | var pairedTransform = this.BuildPairedTransform(summaryInfo, patchMetadata, patchIdSymbol, mainTransform.Transform, mediaSymbol, baselineSymbol, out var productCode); |
| 169 | 169 | ||
| 170 | productCode = productCode.ToUpperInvariant(); | 170 | productCode = productCode.ToUpperInvariant(); |
| 171 | productCodes.Add(productCode); | 171 | productCodes.Add(productCode); |
| @@ -205,17 +205,17 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 205 | } | 205 | } |
| 206 | 206 | ||
| 207 | // Finish filling tables with transform-dependent data. | 207 | // Finish filling tables with transform-dependent data. |
| 208 | productCodes = FinalizePatchProductCodes(tuples, productCodes); | 208 | productCodes = FinalizePatchProductCodes(symbols, productCodes); |
| 209 | 209 | ||
| 210 | // Semicolon delimited list of the product codes that can accept the patch. | 210 | // Semicolon delimited list of the product codes that can accept the patch. |
| 211 | summaryInfo.Add(SummaryInformationType.PatchProductCodes, new SummaryInformationTuple(patchIdTuple.SourceLineNumbers) | 211 | summaryInfo.Add(SummaryInformationType.PatchProductCodes, new SummaryInformationSymbol(patchIdSymbol.SourceLineNumbers) |
| 212 | { | 212 | { |
| 213 | PropertyId = SummaryInformationType.PatchProductCodes, | 213 | PropertyId = SummaryInformationType.PatchProductCodes, |
| 214 | Value = String.Join(";", productCodes) | 214 | Value = String.Join(";", productCodes) |
| 215 | }); | 215 | }); |
| 216 | 216 | ||
| 217 | // Semicolon delimited list of transform substorage names in the order they are applied. | 217 | // Semicolon delimited list of transform substorage names in the order they are applied. |
| 218 | summaryInfo.Add(SummaryInformationType.TransformNames, new SummaryInformationTuple(patchIdTuple.SourceLineNumbers) | 218 | summaryInfo.Add(SummaryInformationType.TransformNames, new SummaryInformationSymbol(patchIdSymbol.SourceLineNumbers) |
| 219 | { | 219 | { |
| 220 | PropertyId = SummaryInformationType.TransformNames, | 220 | PropertyId = SummaryInformationType.TransformNames, |
| 221 | Value = String.Join(";", transformNames) | 221 | Value = String.Join(";", transformNames) |
| @@ -224,7 +224,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 224 | // Put the summary information that was extracted back in now that it is updated. | 224 | // Put the summary information that was extracted back in now that it is updated. |
| 225 | foreach (var readSummaryInfo in summaryInfo.Values.OrderBy(s => s.PropertyId)) | 225 | foreach (var readSummaryInfo in summaryInfo.Values.OrderBy(s => s.PropertyId)) |
| 226 | { | 226 | { |
| 227 | section.AddTuple(readSummaryInfo); | 227 | section.AddSymbol(readSummaryInfo); |
| 228 | } | 228 | } |
| 229 | 229 | ||
| 230 | this.SubStorages = subStorages; | 230 | this.SubStorages = subStorages; |
| @@ -232,19 +232,19 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 232 | return subStorages; | 232 | return subStorages; |
| 233 | } | 233 | } |
| 234 | 234 | ||
| 235 | private Dictionary<SummaryInformationType, SummaryInformationTuple> ExtractPatchSummaryInfo() | 235 | private Dictionary<SummaryInformationType, SummaryInformationSymbol> ExtractPatchSummaryInfo() |
| 236 | { | 236 | { |
| 237 | var result = new Dictionary<SummaryInformationType, SummaryInformationTuple>(); | 237 | var result = new Dictionary<SummaryInformationType, SummaryInformationSymbol>(); |
| 238 | 238 | ||
| 239 | foreach (var section in this.Intermediate.Sections) | 239 | foreach (var section in this.Intermediate.Sections) |
| 240 | { | 240 | { |
| 241 | for (var i = section.Tuples.Count - 1; i >= 0; i--) | 241 | for (var i = section.Symbols.Count - 1; i >= 0; i--) |
| 242 | { | 242 | { |
| 243 | if (section.Tuples[i] is SummaryInformationTuple patchSummaryInfo) | 243 | if (section.Symbols[i] is SummaryInformationSymbol patchSummaryInfo) |
| 244 | { | 244 | { |
| 245 | // Remove all summary information from the tuples and remember those that | 245 | // Remove all summary information from the symbols and remember those that |
| 246 | // are not calculated or reserved. | 246 | // are not calculated or reserved. |
| 247 | section.Tuples.RemoveAt(i); | 247 | section.Symbols.RemoveAt(i); |
| 248 | 248 | ||
| 249 | if (patchSummaryInfo.PropertyId != SummaryInformationType.PatchProductCodes && | 249 | if (patchSummaryInfo.PropertyId != SummaryInformationType.PatchProductCodes && |
| 250 | patchSummaryInfo.PropertyId != SummaryInformationType.PatchCode && | 250 | patchSummaryInfo.PropertyId != SummaryInformationType.PatchCode && |
| @@ -262,39 +262,39 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 262 | return result; | 262 | return result; |
| 263 | } | 263 | } |
| 264 | 264 | ||
| 265 | private Dictionary<string, MsiPatchMetadataTuple> PopulateSummaryInformation(Dictionary<SummaryInformationType, SummaryInformationTuple> summaryInfo, List<IntermediateTuple> tuples, WixPatchIdTuple patchIdTuple, int codepage) | 265 | private Dictionary<string, MsiPatchMetadataSymbol> PopulateSummaryInformation(Dictionary<SummaryInformationType, SummaryInformationSymbol> summaryInfo, List<IntermediateSymbol> symbols, WixPatchIdSymbol patchIdSymbol, int codepage) |
| 266 | { | 266 | { |
| 267 | // PID_CODEPAGE | 267 | // PID_CODEPAGE |
| 268 | if (!summaryInfo.ContainsKey(SummaryInformationType.Codepage)) | 268 | if (!summaryInfo.ContainsKey(SummaryInformationType.Codepage)) |
| 269 | { | 269 | { |
| 270 | // Set the code page by default to the same code page for the | 270 | // Set the code page by default to the same code page for the |
| 271 | // string pool in the database. | 271 | // string pool in the database. |
| 272 | AddSummaryInformation(SummaryInformationType.Codepage, codepage.ToString(CultureInfo.InvariantCulture), patchIdTuple.SourceLineNumbers); | 272 | AddSummaryInformation(SummaryInformationType.Codepage, codepage.ToString(CultureInfo.InvariantCulture), patchIdSymbol.SourceLineNumbers); |
| 273 | } | 273 | } |
| 274 | 274 | ||
| 275 | // GUID patch code for the patch. | 275 | // GUID patch code for the patch. |
| 276 | AddSummaryInformation(SummaryInformationType.PatchCode, patchIdTuple.Id.Id, patchIdTuple.SourceLineNumbers); | 276 | AddSummaryInformation(SummaryInformationType.PatchCode, patchIdSymbol.Id.Id, patchIdSymbol.SourceLineNumbers); |
| 277 | 277 | ||
| 278 | // Indicates the minimum Windows Installer version that is required to install the patch. | 278 | // Indicates the minimum Windows Installer version that is required to install the patch. |
| 279 | AddSummaryInformation(SummaryInformationType.PatchInstallerRequirement, ((int)SummaryInformation.InstallerRequirement.Version31).ToString(CultureInfo.InvariantCulture), patchIdTuple.SourceLineNumbers); | 279 | AddSummaryInformation(SummaryInformationType.PatchInstallerRequirement, ((int)SummaryInformation.InstallerRequirement.Version31).ToString(CultureInfo.InvariantCulture), patchIdSymbol.SourceLineNumbers); |
| 280 | 280 | ||
| 281 | if (!summaryInfo.ContainsKey(SummaryInformationType.Security)) | 281 | if (!summaryInfo.ContainsKey(SummaryInformationType.Security)) |
| 282 | { | 282 | { |
| 283 | AddSummaryInformation(SummaryInformationType.Security, "4", patchIdTuple.SourceLineNumbers); // Read-only enforced; | 283 | AddSummaryInformation(SummaryInformationType.Security, "4", patchIdSymbol.SourceLineNumbers); // Read-only enforced; |
| 284 | } | 284 | } |
| 285 | 285 | ||
| 286 | // Use authored comments or default to display name. | 286 | // Use authored comments or default to display name. |
| 287 | MsiPatchMetadataTuple commentsTuple = null; | 287 | MsiPatchMetadataSymbol commentsSymbol = null; |
| 288 | 288 | ||
| 289 | var metadataTuples = tuples.OfType<MsiPatchMetadataTuple>().Where(t => String.IsNullOrEmpty(t.Company)).ToDictionary(t => t.Property); | 289 | var metadataSymbols = symbols.OfType<MsiPatchMetadataSymbol>().Where(t => String.IsNullOrEmpty(t.Company)).ToDictionary(t => t.Property); |
| 290 | 290 | ||
| 291 | if (!summaryInfo.ContainsKey(SummaryInformationType.Title) && | 291 | if (!summaryInfo.ContainsKey(SummaryInformationType.Title) && |
| 292 | metadataTuples.TryGetValue("DisplayName", out var displayName)) | 292 | metadataSymbols.TryGetValue("DisplayName", out var displayName)) |
| 293 | { | 293 | { |
| 294 | AddSummaryInformation(SummaryInformationType.Title, displayName.Value, displayName.SourceLineNumbers); | 294 | AddSummaryInformation(SummaryInformationType.Title, displayName.Value, displayName.SourceLineNumbers); |
| 295 | 295 | ||
| 296 | // Default comments to use display name as-is. | 296 | // Default comments to use display name as-is. |
| 297 | commentsTuple = displayName; | 297 | commentsSymbol = displayName; |
| 298 | } | 298 | } |
| 299 | 299 | ||
| 300 | // TODO: This code below seems unnecessary given the codepage is set at the top of this method. | 300 | // TODO: This code below seems unnecessary given the codepage is set at the top of this method. |
| @@ -305,38 +305,38 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 305 | //} | 305 | //} |
| 306 | 306 | ||
| 307 | if (!summaryInfo.ContainsKey(SummaryInformationType.PatchPackageName) && | 307 | if (!summaryInfo.ContainsKey(SummaryInformationType.PatchPackageName) && |
| 308 | metadataTuples.TryGetValue("Description", out var description)) | 308 | metadataSymbols.TryGetValue("Description", out var description)) |
| 309 | { | 309 | { |
| 310 | AddSummaryInformation(SummaryInformationType.PatchPackageName, description.Value, description.SourceLineNumbers); | 310 | AddSummaryInformation(SummaryInformationType.PatchPackageName, description.Value, description.SourceLineNumbers); |
| 311 | } | 311 | } |
| 312 | 312 | ||
| 313 | if (!summaryInfo.ContainsKey(SummaryInformationType.Author) && | 313 | if (!summaryInfo.ContainsKey(SummaryInformationType.Author) && |
| 314 | metadataTuples.TryGetValue("ManufacturerName", out var manufacturer)) | 314 | metadataSymbols.TryGetValue("ManufacturerName", out var manufacturer)) |
| 315 | { | 315 | { |
| 316 | AddSummaryInformation(SummaryInformationType.Author, manufacturer.Value, manufacturer.SourceLineNumbers); | 316 | AddSummaryInformation(SummaryInformationType.Author, manufacturer.Value, manufacturer.SourceLineNumbers); |
| 317 | } | 317 | } |
| 318 | 318 | ||
| 319 | // Special metadata marshalled through the build. | 319 | // Special metadata marshalled through the build. |
| 320 | //var wixMetadataValues = tuples.OfType<WixPatchMetadataTuple>().ToDictionary(t => t.Id.Id, t => t.Value); | 320 | //var wixMetadataValues = symbols.OfType<WixPatchMetadataSymbol>().ToDictionary(t => t.Id.Id, t => t.Value); |
| 321 | 321 | ||
| 322 | //if (wixMetadataValues.TryGetValue("Comments", out var wixComments)) | 322 | //if (wixMetadataValues.TryGetValue("Comments", out var wixComments)) |
| 323 | if (metadataTuples.TryGetValue("Comments", out var wixComments)) | 323 | if (metadataSymbols.TryGetValue("Comments", out var wixComments)) |
| 324 | { | 324 | { |
| 325 | commentsTuple = wixComments; | 325 | commentsSymbol = wixComments; |
| 326 | } | 326 | } |
| 327 | 327 | ||
| 328 | // Write the package comments to summary info. | 328 | // Write the package comments to summary info. |
| 329 | if (!summaryInfo.ContainsKey(SummaryInformationType.Comments) && | 329 | if (!summaryInfo.ContainsKey(SummaryInformationType.Comments) && |
| 330 | commentsTuple != null) | 330 | commentsSymbol != null) |
| 331 | { | 331 | { |
| 332 | AddSummaryInformation(SummaryInformationType.Comments, commentsTuple.Value, commentsTuple.SourceLineNumbers); | 332 | AddSummaryInformation(SummaryInformationType.Comments, commentsSymbol.Value, commentsSymbol.SourceLineNumbers); |
| 333 | } | 333 | } |
| 334 | 334 | ||
| 335 | return metadataTuples; | 335 | return metadataSymbols; |
| 336 | 336 | ||
| 337 | void AddSummaryInformation(SummaryInformationType type, string value, SourceLineNumber sourceLineNumber) | 337 | void AddSummaryInformation(SummaryInformationType type, string value, SourceLineNumber sourceLineNumber) |
| 338 | { | 338 | { |
| 339 | summaryInfo.Add(type, new SummaryInformationTuple(sourceLineNumber) | 339 | summaryInfo.Add(type, new SummaryInformationSymbol(sourceLineNumber) |
| 340 | { | 340 | { |
| 341 | PropertyId = type, | 341 | PropertyId = type, |
| 342 | Value = value | 342 | Value = value |
| @@ -379,9 +379,9 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 379 | /// Reduce the transform according to the patch references. | 379 | /// Reduce the transform according to the patch references. |
| 380 | /// </summary> | 380 | /// </summary> |
| 381 | /// <param name="transform">transform generated by torch.</param> | 381 | /// <param name="transform">transform generated by torch.</param> |
| 382 | /// <param name="patchRefTuples">Table contains patch family filter.</param> | 382 | /// <param name="patchRefSymbols">Table contains patch family filter.</param> |
| 383 | /// <returns>true if the transform is not empty</returns> | 383 | /// <returns>true if the transform is not empty</returns> |
| 384 | private bool ReduceTransform(WindowsInstallerData transform, IEnumerable<WixPatchRefTuple> patchRefTuples) | 384 | private bool ReduceTransform(WindowsInstallerData transform, IEnumerable<WixPatchRefSymbol> patchRefSymbols) |
| 385 | { | 385 | { |
| 386 | // identify sections to keep | 386 | // identify sections to keep |
| 387 | var oldSections = new Dictionary<string, Row>(); | 387 | var oldSections = new Dictionary<string, Row>(); |
| @@ -402,10 +402,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 402 | var directoryLockPermissionsIndex = new Dictionary<string, List<Row>>(); | 402 | var directoryLockPermissionsIndex = new Dictionary<string, List<Row>>(); |
| 403 | var directoryMsiLockPermissionsExIndex = new Dictionary<string, List<Row>>(); | 403 | var directoryMsiLockPermissionsExIndex = new Dictionary<string, List<Row>>(); |
| 404 | 404 | ||
| 405 | foreach (var patchRefTuple in patchRefTuples) | 405 | foreach (var patchRefSymbol in patchRefSymbols) |
| 406 | { | 406 | { |
| 407 | var tableName = patchRefTuple.Table; | 407 | var tableName = patchRefSymbol.Table; |
| 408 | var key = patchRefTuple.PrimaryKeys; | 408 | var key = patchRefSymbol.PrimaryKeys; |
| 409 | 409 | ||
| 410 | // Short circuit filtering if all changes should be included. | 410 | // Short circuit filtering if all changes should be included. |
| 411 | if ("*" == tableName && "*" == key) | 411 | if ("*" == tableName && "*" == key) |
| @@ -1090,7 +1090,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 1090 | /// <summary> | 1090 | /// <summary> |
| 1091 | /// Create the #transform for the given main transform. | 1091 | /// Create the #transform for the given main transform. |
| 1092 | /// </summary> | 1092 | /// </summary> |
| 1093 | private WindowsInstallerData BuildPairedTransform(Dictionary<SummaryInformationType, SummaryInformationTuple> summaryInfo, Dictionary<string, MsiPatchMetadataTuple> patchMetadata, WixPatchIdTuple patchIdTuple, WindowsInstallerData mainTransform, MediaTuple mediaTuple, WixPatchBaselineTuple baselineTuple, out string productCode) | 1093 | private WindowsInstallerData BuildPairedTransform(Dictionary<SummaryInformationType, SummaryInformationSymbol> summaryInfo, Dictionary<string, MsiPatchMetadataSymbol> patchMetadata, WixPatchIdSymbol patchIdSymbol, WindowsInstallerData mainTransform, MediaSymbol mediaSymbol, WixPatchBaselineSymbol baselineSymbol, out string productCode) |
| 1094 | { | 1094 | { |
| 1095 | productCode = null; | 1095 | productCode = null; |
| 1096 | 1096 | ||
| @@ -1106,11 +1106,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 1106 | var mainSummaryTable = mainTransform.Tables["_SummaryInformation"]; | 1106 | var mainSummaryTable = mainTransform.Tables["_SummaryInformation"]; |
| 1107 | var mainSummaryRows = mainSummaryTable.Rows.ToDictionary(r => r.FieldAsInteger(0)); | 1107 | var mainSummaryRows = mainSummaryTable.Rows.ToDictionary(r => r.FieldAsInteger(0)); |
| 1108 | 1108 | ||
| 1109 | var baselineValidationFlags = ((int)baselineTuple.ValidationFlags).ToString(CultureInfo.InvariantCulture); | 1109 | var baselineValidationFlags = ((int)baselineSymbol.ValidationFlags).ToString(CultureInfo.InvariantCulture); |
| 1110 | 1110 | ||
| 1111 | if (!mainSummaryRows.ContainsKey((int)SummaryInformationType.TransformValidationFlags)) | 1111 | if (!mainSummaryRows.ContainsKey((int)SummaryInformationType.TransformValidationFlags)) |
| 1112 | { | 1112 | { |
| 1113 | var mainSummaryRow = mainSummaryTable.CreateRow(baselineTuple.SourceLineNumbers); | 1113 | var mainSummaryRow = mainSummaryTable.CreateRow(baselineSymbol.SourceLineNumbers); |
| 1114 | mainSummaryRow[0] = (int)SummaryInformationType.TransformValidationFlags; | 1114 | mainSummaryRow[0] = (int)SummaryInformationType.TransformValidationFlags; |
| 1115 | mainSummaryRow[1] = baselineValidationFlags; | 1115 | mainSummaryRow[1] = baselineValidationFlags; |
| 1116 | } | 1116 | } |
| @@ -1177,7 +1177,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 1177 | mainFileRow.CopyTo(pairedFileRow); | 1177 | mainFileRow.CopyTo(pairedFileRow); |
| 1178 | 1178 | ||
| 1179 | // Override authored media for patch bind. | 1179 | // Override authored media for patch bind. |
| 1180 | mainFileRow.DiskId = mediaTuple.DiskId; | 1180 | mainFileRow.DiskId = mediaSymbol.DiskId; |
| 1181 | 1181 | ||
| 1182 | // Suppress any change to File.Sequence to avoid bloat. | 1182 | // Suppress any change to File.Sequence to avoid bloat. |
| 1183 | mainFileRow.Fields[7].Modified = false; | 1183 | mainFileRow.Fields[7].Modified = false; |
| @@ -1200,78 +1200,78 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 1200 | 1200 | ||
| 1201 | // Add Media row to pairedTransform | 1201 | // Add Media row to pairedTransform |
| 1202 | var pairedMediaTable = pairedTransform.EnsureTable(this.tableDefinitions["Media"]); | 1202 | var pairedMediaTable = pairedTransform.EnsureTable(this.tableDefinitions["Media"]); |
| 1203 | var pairedMediaRow = (MediaRow)pairedMediaTable.CreateRow(mediaTuple.SourceLineNumbers); | 1203 | var pairedMediaRow = (MediaRow)pairedMediaTable.CreateRow(mediaSymbol.SourceLineNumbers); |
| 1204 | pairedMediaRow.Operation = RowOperation.Add; | 1204 | pairedMediaRow.Operation = RowOperation.Add; |
| 1205 | pairedMediaRow.DiskId = mediaTuple.DiskId; | 1205 | pairedMediaRow.DiskId = mediaSymbol.DiskId; |
| 1206 | pairedMediaRow.LastSequence = mediaTuple.LastSequence ?? 0; | 1206 | pairedMediaRow.LastSequence = mediaSymbol.LastSequence ?? 0; |
| 1207 | pairedMediaRow.DiskPrompt = mediaTuple.DiskPrompt; | 1207 | pairedMediaRow.DiskPrompt = mediaSymbol.DiskPrompt; |
| 1208 | pairedMediaRow.Cabinet = mediaTuple.Cabinet; | 1208 | pairedMediaRow.Cabinet = mediaSymbol.Cabinet; |
| 1209 | pairedMediaRow.VolumeLabel = mediaTuple.VolumeLabel; | 1209 | pairedMediaRow.VolumeLabel = mediaSymbol.VolumeLabel; |
| 1210 | pairedMediaRow.Source = mediaTuple.Source; | 1210 | pairedMediaRow.Source = mediaSymbol.Source; |
| 1211 | 1211 | ||
| 1212 | // Add PatchPackage for this Media | 1212 | // Add PatchPackage for this Media |
| 1213 | var pairedPackageTable = pairedTransform.EnsureTable(this.tableDefinitions["PatchPackage"]); | 1213 | var pairedPackageTable = pairedTransform.EnsureTable(this.tableDefinitions["PatchPackage"]); |
| 1214 | pairedPackageTable.Operation = TableOperation.Add; | 1214 | pairedPackageTable.Operation = TableOperation.Add; |
| 1215 | var pairedPackageRow = pairedPackageTable.CreateRow(mediaTuple.SourceLineNumbers); | 1215 | var pairedPackageRow = pairedPackageTable.CreateRow(mediaSymbol.SourceLineNumbers); |
| 1216 | pairedPackageRow.Operation = RowOperation.Add; | 1216 | pairedPackageRow.Operation = RowOperation.Add; |
| 1217 | pairedPackageRow[0] = patchIdTuple.Id.Id; | 1217 | pairedPackageRow[0] = patchIdSymbol.Id.Id; |
| 1218 | pairedPackageRow[1] = mediaTuple.DiskId; | 1218 | pairedPackageRow[1] = mediaSymbol.DiskId; |
| 1219 | 1219 | ||
| 1220 | // Add the property to the patch transform's Property table. | 1220 | // Add the property to the patch transform's Property table. |
| 1221 | var pairedPropertyTable = pairedTransform.EnsureTable(this.tableDefinitions["Property"]); | 1221 | var pairedPropertyTable = pairedTransform.EnsureTable(this.tableDefinitions["Property"]); |
| 1222 | pairedPropertyTable.Operation = TableOperation.Add; | 1222 | pairedPropertyTable.Operation = TableOperation.Add; |
| 1223 | 1223 | ||
| 1224 | // Add property to both identify client patches and whether those patches are removable or not | 1224 | // Add property to both identify client patches and whether those patches are removable or not |
| 1225 | patchMetadata.TryGetValue("AllowRemoval", out var allowRemovalTuple); | 1225 | patchMetadata.TryGetValue("AllowRemoval", out var allowRemovalSymbol); |
| 1226 | 1226 | ||
| 1227 | var pairedPropertyRow = pairedPropertyTable.CreateRow(allowRemovalTuple?.SourceLineNumbers); | 1227 | var pairedPropertyRow = pairedPropertyTable.CreateRow(allowRemovalSymbol?.SourceLineNumbers); |
| 1228 | pairedPropertyRow.Operation = RowOperation.Add; | 1228 | pairedPropertyRow.Operation = RowOperation.Add; |
| 1229 | pairedPropertyRow[0] = String.Concat(patchIdTuple.ClientPatchId, ".AllowRemoval"); | 1229 | pairedPropertyRow[0] = String.Concat(patchIdSymbol.ClientPatchId, ".AllowRemoval"); |
| 1230 | pairedPropertyRow[1] = allowRemovalTuple?.Value ?? "0"; | 1230 | pairedPropertyRow[1] = allowRemovalSymbol?.Value ?? "0"; |
| 1231 | 1231 | ||
| 1232 | // Add this patch code GUID to the patch transform to identify | 1232 | // Add this patch code GUID to the patch transform to identify |
| 1233 | // which patches are installed, including in multi-patch | 1233 | // which patches are installed, including in multi-patch |
| 1234 | // installations. | 1234 | // installations. |
| 1235 | pairedPropertyRow = pairedPropertyTable.CreateRow(patchIdTuple.SourceLineNumbers); | 1235 | pairedPropertyRow = pairedPropertyTable.CreateRow(patchIdSymbol.SourceLineNumbers); |
| 1236 | pairedPropertyRow.Operation = RowOperation.Add; | 1236 | pairedPropertyRow.Operation = RowOperation.Add; |
| 1237 | pairedPropertyRow[0] = String.Concat(patchIdTuple.ClientPatchId, ".PatchCode"); | 1237 | pairedPropertyRow[0] = String.Concat(patchIdSymbol.ClientPatchId, ".PatchCode"); |
| 1238 | pairedPropertyRow[1] = patchIdTuple.Id.Id; | 1238 | pairedPropertyRow[1] = patchIdSymbol.Id.Id; |
| 1239 | 1239 | ||
| 1240 | // Add PATCHNEWPACKAGECODE to apply to admin layouts. | 1240 | // Add PATCHNEWPACKAGECODE to apply to admin layouts. |
| 1241 | pairedPropertyRow = pairedPropertyTable.CreateRow(patchIdTuple.SourceLineNumbers); | 1241 | pairedPropertyRow = pairedPropertyTable.CreateRow(patchIdSymbol.SourceLineNumbers); |
| 1242 | pairedPropertyRow.Operation = RowOperation.Add; | 1242 | pairedPropertyRow.Operation = RowOperation.Add; |
| 1243 | pairedPropertyRow[0] = "PATCHNEWPACKAGECODE"; | 1243 | pairedPropertyRow[0] = "PATCHNEWPACKAGECODE"; |
| 1244 | pairedPropertyRow[1] = patchIdTuple.Id.Id; | 1244 | pairedPropertyRow[1] = patchIdSymbol.Id.Id; |
| 1245 | 1245 | ||
| 1246 | // Add PATCHNEWSUMMARYCOMMENTS and PATCHNEWSUMMARYSUBJECT to apply to admin layouts. | 1246 | // Add PATCHNEWSUMMARYCOMMENTS and PATCHNEWSUMMARYSUBJECT to apply to admin layouts. |
| 1247 | if (summaryInfo.TryGetValue(SummaryInformationType.Subject, out var subjectTuple)) | 1247 | if (summaryInfo.TryGetValue(SummaryInformationType.Subject, out var subjectSymbol)) |
| 1248 | { | 1248 | { |
| 1249 | pairedPropertyRow = pairedPropertyTable.CreateRow(subjectTuple.SourceLineNumbers); | 1249 | pairedPropertyRow = pairedPropertyTable.CreateRow(subjectSymbol.SourceLineNumbers); |
| 1250 | pairedPropertyRow.Operation = RowOperation.Add; | 1250 | pairedPropertyRow.Operation = RowOperation.Add; |
| 1251 | pairedPropertyRow[0] = "PATCHNEWSUMMARYSUBJECT"; | 1251 | pairedPropertyRow[0] = "PATCHNEWSUMMARYSUBJECT"; |
| 1252 | pairedPropertyRow[1] = subjectTuple.Value; | 1252 | pairedPropertyRow[1] = subjectSymbol.Value; |
| 1253 | } | 1253 | } |
| 1254 | 1254 | ||
| 1255 | if (summaryInfo.TryGetValue(SummaryInformationType.Comments, out var commentsTuple)) | 1255 | if (summaryInfo.TryGetValue(SummaryInformationType.Comments, out var commentsSymbol)) |
| 1256 | { | 1256 | { |
| 1257 | pairedPropertyRow = pairedPropertyTable.CreateRow(commentsTuple.SourceLineNumbers); | 1257 | pairedPropertyRow = pairedPropertyTable.CreateRow(commentsSymbol.SourceLineNumbers); |
| 1258 | pairedPropertyRow.Operation = RowOperation.Add; | 1258 | pairedPropertyRow.Operation = RowOperation.Add; |
| 1259 | pairedPropertyRow[0] = "PATCHNEWSUMMARYCOMMENTS"; | 1259 | pairedPropertyRow[0] = "PATCHNEWSUMMARYCOMMENTS"; |
| 1260 | pairedPropertyRow[1] = commentsTuple.Value; | 1260 | pairedPropertyRow[1] = commentsSymbol.Value; |
| 1261 | } | 1261 | } |
| 1262 | 1262 | ||
| 1263 | return pairedTransform; | 1263 | return pairedTransform; |
| 1264 | } | 1264 | } |
| 1265 | 1265 | ||
| 1266 | private static SortedSet<string> FinalizePatchProductCodes(List<IntermediateTuple> tuples, SortedSet<string> productCodes) | 1266 | private static SortedSet<string> FinalizePatchProductCodes(List<IntermediateSymbol> symbols, SortedSet<string> productCodes) |
| 1267 | { | 1267 | { |
| 1268 | var patchTargetTuples = tuples.OfType<WixPatchTargetTuple>().ToList(); | 1268 | var patchTargetSymbols = symbols.OfType<WixPatchTargetSymbol>().ToList(); |
| 1269 | 1269 | ||
| 1270 | if (patchTargetTuples.Any()) | 1270 | if (patchTargetSymbols.Any()) |
| 1271 | { | 1271 | { |
| 1272 | var targets = new SortedSet<string>(); | 1272 | var targets = new SortedSet<string>(); |
| 1273 | var replace = true; | 1273 | var replace = true; |
| 1274 | foreach (var wixPatchTargetRow in patchTargetTuples) | 1274 | foreach (var wixPatchTargetRow in patchTargetSymbols) |
| 1275 | { | 1275 | { |
| 1276 | var target = wixPatchTargetRow.ProductCode.ToUpperInvariant(); | 1276 | var target = wixPatchTargetRow.ProductCode.ToUpperInvariant(); |
| 1277 | if (target == "*") | 1277 | if (target == "*") |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs index ea6d49a0..950fe1c1 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs | |||
| @@ -8,7 +8,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 8 | using System.Linq; | 8 | using System.Linq; |
| 9 | using WixToolset.Core.Bind; | 9 | using WixToolset.Core.Bind; |
| 10 | using WixToolset.Data; | 10 | using WixToolset.Data; |
| 11 | using WixToolset.Data.Tuples; | 11 | using WixToolset.Data.Symbols; |
| 12 | using WixToolset.Data.WindowsInstaller; | 12 | using WixToolset.Data.WindowsInstaller; |
| 13 | using WixToolset.Extensibility; | 13 | using WixToolset.Extensibility; |
| 14 | using WixToolset.Extensibility.Data; | 14 | using WixToolset.Extensibility.Data; |
| @@ -147,7 +147,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 147 | // Add binder variables for all properties. | 147 | // Add binder variables for all properties. |
| 148 | if (SectionType.Product == section.Type || variableCache != null) | 148 | if (SectionType.Product == section.Type || variableCache != null) |
| 149 | { | 149 | { |
| 150 | foreach (var propertyRow in section.Tuples.OfType<PropertyTuple>()) | 150 | foreach (var propertyRow in section.Symbols.OfType<PropertySymbol>()) |
| 151 | { | 151 | { |
| 152 | // Set the ProductCode if it is to be generated. | 152 | // Set the ProductCode if it is to be generated. |
| 153 | if ("ProductCode".Equals(propertyRow.Id.Id, StringComparison.Ordinal) && "*".Equals(propertyRow.Value, StringComparison.Ordinal)) | 153 | if ("ProductCode".Equals(propertyRow.Id.Id, StringComparison.Ordinal) && "*".Equals(propertyRow.Value, StringComparison.Ordinal)) |
| @@ -256,13 +256,13 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 256 | // Retrieve file information from merge modules. | 256 | // Retrieve file information from merge modules. |
| 257 | if (SectionType.Product == section.Type) | 257 | if (SectionType.Product == section.Type) |
| 258 | { | 258 | { |
| 259 | var wixMergeTuples = section.Tuples.OfType<WixMergeTuple>().ToList(); | 259 | var wixMergeSymbols = section.Symbols.OfType<WixMergeSymbol>().ToList(); |
| 260 | 260 | ||
| 261 | if (wixMergeTuples.Any()) | 261 | if (wixMergeSymbols.Any()) |
| 262 | { | 262 | { |
| 263 | containsMergeModules = true; | 263 | containsMergeModules = true; |
| 264 | 264 | ||
| 265 | var command = new ExtractMergeModuleFilesCommand(this.Messaging, wixMergeTuples, fileFacades, installerVersion, this.IntermediateFolder, this.SuppressLayout); | 265 | var command = new ExtractMergeModuleFilesCommand(this.Messaging, wixMergeSymbols, fileFacades, installerVersion, this.IntermediateFolder, this.SuppressLayout); |
| 266 | command.Execute(); | 266 | command.Execute(); |
| 267 | 267 | ||
| 268 | fileFacades.AddRange(command.MergeModulesFileFacades); | 268 | fileFacades.AddRange(command.MergeModulesFileFacades); |
| @@ -294,7 +294,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 294 | command.Execute(); | 294 | command.Execute(); |
| 295 | } | 295 | } |
| 296 | 296 | ||
| 297 | #if TODO_FINISH_UPDATE // use tuples instead of rows | 297 | #if TODO_FINISH_UPDATE // use symbols instead of rows |
| 298 | // Extended binder extensions can be called now that fields are resolved. | 298 | // Extended binder extensions can be called now that fields are resolved. |
| 299 | { | 299 | { |
| 300 | Table updatedFiles = this.Output.EnsureTable(this.TableDefinitions["WixBindUpdatedFiles"]); | 300 | Table updatedFiles = this.Output.EnsureTable(this.TableDefinitions["WixBindUpdatedFiles"]); |
| @@ -341,20 +341,20 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 341 | command.Execute(); | 341 | command.Execute(); |
| 342 | } | 342 | } |
| 343 | 343 | ||
| 344 | // Add missing CreateFolder tuples to null-keypath components. | 344 | // Add missing CreateFolder symbols to null-keypath components. |
| 345 | { | 345 | { |
| 346 | var command = new AddCreateFoldersCommand(section); | 346 | var command = new AddCreateFoldersCommand(section); |
| 347 | command.Execute(); | 347 | command.Execute(); |
| 348 | } | 348 | } |
| 349 | 349 | ||
| 350 | // Update tuples that reference text files on disk. | 350 | // Update symbols that reference text files on disk. |
| 351 | { | 351 | { |
| 352 | var command = new UpdateFromTextFilesCommand(this.Messaging, section); | 352 | var command = new UpdateFromTextFilesCommand(this.Messaging, section); |
| 353 | command.Execute(); | 353 | command.Execute(); |
| 354 | } | 354 | } |
| 355 | 355 | ||
| 356 | // Assign files to media and update file sequences. | 356 | // Assign files to media and update file sequences. |
| 357 | Dictionary<MediaTuple, IEnumerable<FileFacade>> filesByCabinetMedia; | 357 | Dictionary<MediaSymbol, IEnumerable<FileFacade>> filesByCabinetMedia; |
| 358 | IEnumerable<FileFacade> uncompressedFiles; | 358 | IEnumerable<FileFacade> uncompressedFiles; |
| 359 | { | 359 | { |
| 360 | var order = new OptimizeFileFacadesOrderCommand(fileFacades); | 360 | var order = new OptimizeFileFacadesOrderCommand(fileFacades); |
| @@ -391,7 +391,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 391 | if (output.Type == OutputType.Module) | 391 | if (output.Type == OutputType.Module) |
| 392 | { | 392 | { |
| 393 | // Modularize identifiers. | 393 | // Modularize identifiers. |
| 394 | var modularize = new ModularizeCommand(output, modularizationSuffix, section.Tuples.OfType<WixSuppressModularizationTuple>()); | 394 | var modularize = new ModularizeCommand(output, modularizationSuffix, section.Symbols.OfType<WixSuppressModularizationSymbol>()); |
| 395 | modularize.Execute(); | 395 | modularize.Execute(); |
| 396 | 396 | ||
| 397 | // Ensure all sequence tables in place because, mergemod.dll requires them. | 397 | // Ensure all sequence tables in place because, mergemod.dll requires them. |
| @@ -418,7 +418,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 418 | 418 | ||
| 419 | if (SectionType.Patch == section.Type && this.DeltaBinaryPatch) | 419 | if (SectionType.Patch == section.Type && this.DeltaBinaryPatch) |
| 420 | { | 420 | { |
| 421 | var command = new CreateDeltaPatchesCommand(fileFacades, this.IntermediateFolder, section.Tuples.OfType<WixPatchIdTuple>().FirstOrDefault()); | 421 | var command = new CreateDeltaPatchesCommand(fileFacades, this.IntermediateFolder, section.Symbols.OfType<WixPatchIdSymbol>().FirstOrDefault()); |
| 422 | command.Execute(); | 422 | command.Execute(); |
| 423 | } | 423 | } |
| 424 | 424 | ||
| @@ -428,7 +428,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 428 | { | 428 | { |
| 429 | this.Messaging.Write(VerboseMessages.CreatingCabinetFiles()); | 429 | this.Messaging.Write(VerboseMessages.CreatingCabinetFiles()); |
| 430 | 430 | ||
| 431 | var mediaTemplate = section.Tuples.OfType<WixMediaTemplateTuple>().FirstOrDefault(); | 431 | var mediaTemplate = section.Symbols.OfType<WixMediaTemplateSymbol>().FirstOrDefault(); |
| 432 | 432 | ||
| 433 | var command = new CreateCabinetsCommand(this.ServiceProvider, this.BackendHelper, mediaTemplate); | 433 | var command = new CreateCabinetsCommand(this.ServiceProvider, this.BackendHelper, mediaTemplate); |
| 434 | command.CabbingThreadCount = this.CabbingThreadCount; | 434 | command.CabbingThreadCount = this.CabbingThreadCount; |
| @@ -578,7 +578,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 578 | return wixout; | 578 | return wixout; |
| 579 | } | 579 | } |
| 580 | 580 | ||
| 581 | private string ResolveMedia(MediaTuple media, string mediaLayoutDirectory, string layoutDirectory) | 581 | private string ResolveMedia(MediaSymbol media, string mediaLayoutDirectory, string layoutDirectory) |
| 582 | { | 582 | { |
| 583 | string layout = null; | 583 | string layout = null; |
| 584 | 584 | ||
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindSummaryInfoCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindSummaryInfoCommand.cs index d5806fee..82688edf 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/BindSummaryInfoCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindSummaryInfoCommand.cs | |||
| @@ -6,7 +6,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 6 | using System.Globalization; | 6 | using System.Globalization; |
| 7 | using System.Linq; | 7 | using System.Linq; |
| 8 | using WixToolset.Data; | 8 | using WixToolset.Data; |
| 9 | using WixToolset.Data.Tuples; | 9 | using WixToolset.Data.Symbols; |
| 10 | 10 | ||
| 11 | /// <summary> | 11 | /// <summary> |
| 12 | /// Binds the summary information table of a database. | 12 | /// Binds the summary information table of a database. |
| @@ -49,13 +49,13 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 49 | var foundCreatingApplication = false; | 49 | var foundCreatingApplication = false; |
| 50 | var now = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture); | 50 | var now = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture); |
| 51 | 51 | ||
| 52 | foreach (var summaryInformationTuple in this.Section.Tuples.OfType<SummaryInformationTuple>()) | 52 | foreach (var summaryInformationSymbol in this.Section.Symbols.OfType<SummaryInformationSymbol>()) |
| 53 | { | 53 | { |
| 54 | switch (summaryInformationTuple.PropertyId) | 54 | switch (summaryInformationSymbol.PropertyId) |
| 55 | { | 55 | { |
| 56 | case SummaryInformationType.Codepage: // PID_CODEPAGE | 56 | case SummaryInformationType.Codepage: // PID_CODEPAGE |
| 57 | // make sure the code page is an int and not a web name or null | 57 | // make sure the code page is an int and not a web name or null |
| 58 | var codepage = summaryInformationTuple.Value; | 58 | var codepage = summaryInformationSymbol.Value; |
| 59 | 59 | ||
| 60 | if (String.IsNullOrEmpty(codepage)) | 60 | if (String.IsNullOrEmpty(codepage)) |
| 61 | { | 61 | { |
| @@ -63,11 +63,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 63 | } | 63 | } |
| 64 | else | 64 | else |
| 65 | { | 65 | { |
| 66 | summaryInformationTuple.Value = Common.GetValidCodePage(codepage, false, false, summaryInformationTuple.SourceLineNumbers).ToString(CultureInfo.InvariantCulture); | 66 | summaryInformationSymbol.Value = Common.GetValidCodePage(codepage, false, false, summaryInformationSymbol.SourceLineNumbers).ToString(CultureInfo.InvariantCulture); |
| 67 | } | 67 | } |
| 68 | break; | 68 | break; |
| 69 | case SummaryInformationType.PackageCode: // PID_REVNUMBER | 69 | case SummaryInformationType.PackageCode: // PID_REVNUMBER |
| 70 | var packageCode = summaryInformationTuple.Value; | 70 | var packageCode = summaryInformationSymbol.Value; |
| 71 | 71 | ||
| 72 | if (SectionType.Module == this.Section.Type) | 72 | if (SectionType.Module == this.Section.Type) |
| 73 | { | 73 | { |
| @@ -76,7 +76,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 76 | else if ("*" == packageCode) | 76 | else if ("*" == packageCode) |
| 77 | { | 77 | { |
| 78 | // set the revision number (package/patch code) if it should be automatically generated | 78 | // set the revision number (package/patch code) if it should be automatically generated |
| 79 | summaryInformationTuple.Value = Common.GenerateGuid(); | 79 | summaryInformationSymbol.Value = Common.GenerateGuid(); |
| 80 | } | 80 | } |
| 81 | break; | 81 | break; |
| 82 | case SummaryInformationType.Created: | 82 | case SummaryInformationType.Created: |
| @@ -86,7 +86,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 86 | foundLastSaveDataTime = true; | 86 | foundLastSaveDataTime = true; |
| 87 | break; | 87 | break; |
| 88 | case SummaryInformationType.WindowsInstallerVersion: | 88 | case SummaryInformationType.WindowsInstallerVersion: |
| 89 | this.InstallerVersion = summaryInformationTuple[SummaryInformationTupleFields.Value].AsNumber(); | 89 | this.InstallerVersion = summaryInformationSymbol[SummaryInformationSymbolFields.Value].AsNumber(); |
| 90 | break; | 90 | break; |
| 91 | case SummaryInformationType.WordCount: | 91 | case SummaryInformationType.WordCount: |
| 92 | if (SectionType.Patch == this.Section.Type) | 92 | if (SectionType.Patch == this.Section.Type) |
| @@ -96,7 +96,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 96 | } | 96 | } |
| 97 | else | 97 | else |
| 98 | { | 98 | { |
| 99 | var attributes = summaryInformationTuple[SummaryInformationTupleFields.Value].AsNumber(); | 99 | var attributes = summaryInformationSymbol[SummaryInformationSymbolFields.Value].AsNumber(); |
| 100 | this.LongNames = (0 == (attributes & 1)); | 100 | this.LongNames = (0 == (attributes & 1)); |
| 101 | this.Compressed = (2 == (attributes & 2)); | 101 | this.Compressed = (2 == (attributes & 2)); |
| 102 | } | 102 | } |
| @@ -110,7 +110,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 110 | // add a summary information row for the create time/date property if its not already set | 110 | // add a summary information row for the create time/date property if its not already set |
| 111 | if (!foundCreateDataTime) | 111 | if (!foundCreateDataTime) |
| 112 | { | 112 | { |
| 113 | this.Section.AddTuple(new SummaryInformationTuple(null) | 113 | this.Section.AddSymbol(new SummaryInformationSymbol(null) |
| 114 | { | 114 | { |
| 115 | PropertyId = SummaryInformationType.Created, | 115 | PropertyId = SummaryInformationType.Created, |
| 116 | Value = now, | 116 | Value = now, |
| @@ -120,7 +120,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 120 | // add a summary information row for the last save time/date property if its not already set | 120 | // add a summary information row for the last save time/date property if its not already set |
| 121 | if (!foundLastSaveDataTime) | 121 | if (!foundLastSaveDataTime) |
| 122 | { | 122 | { |
| 123 | this.Section.AddTuple(new SummaryInformationTuple(null) | 123 | this.Section.AddSymbol(new SummaryInformationSymbol(null) |
| 124 | { | 124 | { |
| 125 | PropertyId = SummaryInformationType.LastSaved, | 125 | PropertyId = SummaryInformationType.LastSaved, |
| 126 | Value = now, | 126 | Value = now, |
| @@ -130,7 +130,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 130 | // add a summary information row for the creating application property if its not already set | 130 | // add a summary information row for the creating application property if its not already set |
| 131 | if (!foundCreatingApplication) | 131 | if (!foundCreatingApplication) |
| 132 | { | 132 | { |
| 133 | this.Section.AddTuple(new SummaryInformationTuple(null) | 133 | this.Section.AddSymbol(new SummaryInformationSymbol(null) |
| 134 | { | 134 | { |
| 135 | PropertyId = SummaryInformationType.CreatingApplication, | 135 | PropertyId = SummaryInformationType.CreatingApplication, |
| 136 | Value = String.Format(CultureInfo.InvariantCulture, AppCommon.GetCreatingApplicationString()), | 136 | Value = String.Format(CultureInfo.InvariantCulture, AppCommon.GetCreatingApplicationString()), |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindTransformCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindTransformCommand.cs index ac98c82d..bc5c6853 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/BindTransformCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindTransformCommand.cs | |||
| @@ -7,7 +7,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 7 | using System.IO; | 7 | using System.IO; |
| 8 | using WixToolset.Core.WindowsInstaller.Msi; | 8 | using WixToolset.Core.WindowsInstaller.Msi; |
| 9 | using WixToolset.Data; | 9 | using WixToolset.Data; |
| 10 | using WixToolset.Data.Tuples; | 10 | using WixToolset.Data.Symbols; |
| 11 | using WixToolset.Data.WindowsInstaller; | 11 | using WixToolset.Data.WindowsInstaller; |
| 12 | using WixToolset.Extensibility.Services; | 12 | using WixToolset.Extensibility.Services; |
| 13 | 13 | ||
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CalculateComponentGuids.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CalculateComponentGuids.cs index 8135ae2e..a1e3ac83 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CalculateComponentGuids.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CalculateComponentGuids.cs | |||
| @@ -7,7 +7,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 7 | using System.IO; | 7 | using System.IO; |
| 8 | using System.Linq; | 8 | using System.Linq; |
| 9 | using WixToolset.Data; | 9 | using WixToolset.Data; |
| 10 | using WixToolset.Data.Tuples; | 10 | using WixToolset.Data.Symbols; |
| 11 | using WixToolset.Extensibility.Data; | 11 | using WixToolset.Extensibility.Data; |
| 12 | using WixToolset.Extensibility.Services; | 12 | using WixToolset.Extensibility.Services; |
| 13 | 13 | ||
| @@ -34,38 +34,38 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 34 | 34 | ||
| 35 | public void Execute() | 35 | public void Execute() |
| 36 | { | 36 | { |
| 37 | Dictionary<string, RegistryTuple> registryKeyRows = null; | 37 | Dictionary<string, RegistrySymbol> registryKeyRows = null; |
| 38 | Dictionary<string, IResolvedDirectory> targetPathsByDirectoryId = null; | 38 | Dictionary<string, IResolvedDirectory> targetPathsByDirectoryId = null; |
| 39 | Dictionary<string, string> componentIdGenSeeds = null; | 39 | Dictionary<string, string> componentIdGenSeeds = null; |
| 40 | Dictionary<string, List<FileTuple>> filesByComponentId = null; | 40 | Dictionary<string, List<FileSymbol>> filesByComponentId = null; |
| 41 | 41 | ||
| 42 | // Find components with generatable guids. | 42 | // Find components with generatable guids. |
| 43 | foreach (var componentTuple in this.Section.Tuples.OfType<ComponentTuple>()) | 43 | foreach (var componentSymbol in this.Section.Symbols.OfType<ComponentSymbol>()) |
| 44 | { | 44 | { |
| 45 | // Skip components that do not specify generate guid. | 45 | // Skip components that do not specify generate guid. |
| 46 | if (componentTuple.ComponentId != "*") | 46 | if (componentSymbol.ComponentId != "*") |
| 47 | { | 47 | { |
| 48 | continue; | 48 | continue; |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | if (String.IsNullOrEmpty(componentTuple.KeyPath) || ComponentKeyPathType.OdbcDataSource == componentTuple.KeyPathType) | 51 | if (String.IsNullOrEmpty(componentSymbol.KeyPath) || ComponentKeyPathType.OdbcDataSource == componentSymbol.KeyPathType) |
| 52 | { | 52 | { |
| 53 | this.Messaging.Write(ErrorMessages.IllegalComponentWithAutoGeneratedGuid(componentTuple.SourceLineNumbers)); | 53 | this.Messaging.Write(ErrorMessages.IllegalComponentWithAutoGeneratedGuid(componentSymbol.SourceLineNumbers)); |
| 54 | continue; | 54 | continue; |
| 55 | } | 55 | } |
| 56 | 56 | ||
| 57 | if (ComponentKeyPathType.Registry == componentTuple.KeyPathType) | 57 | if (ComponentKeyPathType.Registry == componentSymbol.KeyPathType) |
| 58 | { | 58 | { |
| 59 | if (registryKeyRows is null) | 59 | if (registryKeyRows is null) |
| 60 | { | 60 | { |
| 61 | registryKeyRows = this.Section.Tuples.OfType<RegistryTuple>().ToDictionary(t => t.Id.Id); | 61 | registryKeyRows = this.Section.Symbols.OfType<RegistrySymbol>().ToDictionary(t => t.Id.Id); |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | if (registryKeyRows.TryGetValue(componentTuple.KeyPath, out var foundRow)) | 64 | if (registryKeyRows.TryGetValue(componentSymbol.KeyPath, out var foundRow)) |
| 65 | { | 65 | { |
| 66 | var bitness = componentTuple.Win64 ? "64" : String.Empty; | 66 | var bitness = componentSymbol.Win64 ? "64" : String.Empty; |
| 67 | var regkey = String.Concat(bitness, foundRow.AsString(1), "\\", foundRow.AsString(2), "\\", foundRow.AsString(3)); | 67 | var regkey = String.Concat(bitness, foundRow.AsString(1), "\\", foundRow.AsString(2), "\\", foundRow.AsString(3)); |
| 68 | componentTuple.ComponentId = this.BackendHelper.CreateGuid(BindDatabaseCommand.WixComponentGuidNamespace, regkey.ToLowerInvariant()); | 68 | componentSymbol.ComponentId = this.BackendHelper.CreateGuid(BindDatabaseCommand.WixComponentGuidNamespace, regkey.ToLowerInvariant()); |
| 69 | } | 69 | } |
| 70 | } | 70 | } |
| 71 | else // must be a File KeyPath. | 71 | else // must be a File KeyPath. |
| @@ -74,7 +74,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 74 | // of directory ids to target names do that now. | 74 | // of directory ids to target names do that now. |
| 75 | if (targetPathsByDirectoryId is null) | 75 | if (targetPathsByDirectoryId is null) |
| 76 | { | 76 | { |
| 77 | var directories = this.Section.Tuples.OfType<DirectoryTuple>().ToList(); | 77 | var directories = this.Section.Symbols.OfType<DirectorySymbol>().ToList(); |
| 78 | 78 | ||
| 79 | targetPathsByDirectoryId = new Dictionary<string, IResolvedDirectory>(directories.Count); | 79 | targetPathsByDirectoryId = new Dictionary<string, IResolvedDirectory>(directories.Count); |
| 80 | 80 | ||
| @@ -95,12 +95,12 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 95 | } | 95 | } |
| 96 | 96 | ||
| 97 | // If the component id generation seeds have not been indexed | 97 | // If the component id generation seeds have not been indexed |
| 98 | // from the Directory tuples do that now. | 98 | // from the Directory symbols do that now. |
| 99 | if (componentIdGenSeeds is null) | 99 | if (componentIdGenSeeds is null) |
| 100 | { | 100 | { |
| 101 | // If there are any Directory tuples, build up the Component Guid | 101 | // If there are any Directory symbols, build up the Component Guid |
| 102 | // generation seeds indexed by Directory/@Id. | 102 | // generation seeds indexed by Directory/@Id. |
| 103 | componentIdGenSeeds = this.Section.Tuples.OfType<DirectoryTuple>() | 103 | componentIdGenSeeds = this.Section.Symbols.OfType<DirectorySymbol>() |
| 104 | .Where(t => !String.IsNullOrEmpty(t.ComponentGuidGenerationSeed)) | 104 | .Where(t => !String.IsNullOrEmpty(t.ComponentGuidGenerationSeed)) |
| 105 | .ToDictionary(t => t.Id.Id, t => t.ComponentGuidGenerationSeed); | 105 | .ToDictionary(t => t.Id.Id, t => t.ComponentGuidGenerationSeed); |
| 106 | } | 106 | } |
| @@ -109,15 +109,15 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 109 | // then do that now | 109 | // then do that now |
| 110 | if (filesByComponentId is null) | 110 | if (filesByComponentId is null) |
| 111 | { | 111 | { |
| 112 | var files = this.Section.Tuples.OfType<FileTuple>().ToList(); | 112 | var files = this.Section.Symbols.OfType<FileSymbol>().ToList(); |
| 113 | 113 | ||
| 114 | filesByComponentId = new Dictionary<string, List<FileTuple>>(files.Count); | 114 | filesByComponentId = new Dictionary<string, List<FileSymbol>>(files.Count); |
| 115 | 115 | ||
| 116 | foreach (var file in files) | 116 | foreach (var file in files) |
| 117 | { | 117 | { |
| 118 | if (!filesByComponentId.TryGetValue(file.ComponentRef, out var componentFiles)) | 118 | if (!filesByComponentId.TryGetValue(file.ComponentRef, out var componentFiles)) |
| 119 | { | 119 | { |
| 120 | componentFiles = new List<FileTuple>(); | 120 | componentFiles = new List<FileSymbol>(); |
| 121 | filesByComponentId.Add(file.ComponentRef, componentFiles); | 121 | filesByComponentId.Add(file.ComponentRef, componentFiles); |
| 122 | } | 122 | } |
| 123 | 123 | ||
| @@ -126,16 +126,16 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 126 | } | 126 | } |
| 127 | 127 | ||
| 128 | // validate component meets all the conditions to have a generated guid | 128 | // validate component meets all the conditions to have a generated guid |
| 129 | var currentComponentFiles = filesByComponentId[componentTuple.Id.Id]; | 129 | var currentComponentFiles = filesByComponentId[componentSymbol.Id.Id]; |
| 130 | var numFilesInComponent = currentComponentFiles.Count; | 130 | var numFilesInComponent = currentComponentFiles.Count; |
| 131 | string path = null; | 131 | string path = null; |
| 132 | 132 | ||
| 133 | foreach (var fileRow in currentComponentFiles) | 133 | foreach (var fileRow in currentComponentFiles) |
| 134 | { | 134 | { |
| 135 | if (fileRow.Id.Id == componentTuple.KeyPath) | 135 | if (fileRow.Id.Id == componentSymbol.KeyPath) |
| 136 | { | 136 | { |
| 137 | // calculate the key file's canonical target path | 137 | // calculate the key file's canonical target path |
| 138 | string directoryPath = this.PathResolver.GetDirectoryPath(targetPathsByDirectoryId, componentIdGenSeeds, componentTuple.DirectoryRef, true); | 138 | string directoryPath = this.PathResolver.GetDirectoryPath(targetPathsByDirectoryId, componentIdGenSeeds, componentSymbol.DirectoryRef, true); |
| 139 | string fileName = Common.GetName(fileRow.Name, false, true).ToLowerInvariant(); | 139 | string fileName = Common.GetName(fileRow.Name, false, true).ToLowerInvariant(); |
| 140 | path = Path.Combine(directoryPath, fileName); | 140 | path = Path.Combine(directoryPath, fileName); |
| 141 | 141 | ||
| @@ -147,13 +147,13 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 147 | path.StartsWith(@"StartMenuFolder\programs", StringComparison.Ordinal) || | 147 | path.StartsWith(@"StartMenuFolder\programs", StringComparison.Ordinal) || |
| 148 | path.StartsWith(@"WindowsFolder\fonts", StringComparison.Ordinal)) | 148 | path.StartsWith(@"WindowsFolder\fonts", StringComparison.Ordinal)) |
| 149 | { | 149 | { |
| 150 | this.Messaging.Write(ErrorMessages.IllegalPathForGeneratedComponentGuid(componentTuple.SourceLineNumbers, fileRow.ComponentRef, path)); | 150 | this.Messaging.Write(ErrorMessages.IllegalPathForGeneratedComponentGuid(componentSymbol.SourceLineNumbers, fileRow.ComponentRef, path)); |
| 151 | } | 151 | } |
| 152 | 152 | ||
| 153 | // if component has more than one file, the key path must be versioned | 153 | // if component has more than one file, the key path must be versioned |
| 154 | if (1 < numFilesInComponent && String.IsNullOrEmpty(fileRow.Version)) | 154 | if (1 < numFilesInComponent && String.IsNullOrEmpty(fileRow.Version)) |
| 155 | { | 155 | { |
| 156 | this.Messaging.Write(ErrorMessages.IllegalGeneratedGuidComponentUnversionedKeypath(componentTuple.SourceLineNumbers)); | 156 | this.Messaging.Write(ErrorMessages.IllegalGeneratedGuidComponentUnversionedKeypath(componentSymbol.SourceLineNumbers)); |
| 157 | } | 157 | } |
| 158 | } | 158 | } |
| 159 | else | 159 | else |
| @@ -161,7 +161,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 161 | // not a key path, so it must be an unversioned file if component has more than one file | 161 | // not a key path, so it must be an unversioned file if component has more than one file |
| 162 | if (1 < numFilesInComponent && !String.IsNullOrEmpty(fileRow.Version)) | 162 | if (1 < numFilesInComponent && !String.IsNullOrEmpty(fileRow.Version)) |
| 163 | { | 163 | { |
| 164 | this.Messaging.Write(ErrorMessages.IllegalGeneratedGuidComponentVersionedNonkeypath(componentTuple.SourceLineNumbers)); | 164 | this.Messaging.Write(ErrorMessages.IllegalGeneratedGuidComponentVersionedNonkeypath(componentSymbol.SourceLineNumbers)); |
| 165 | } | 165 | } |
| 166 | } | 166 | } |
| 167 | } | 167 | } |
| @@ -169,7 +169,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 169 | // if the rules were followed, reward with a generated guid | 169 | // if the rules were followed, reward with a generated guid |
| 170 | if (!this.Messaging.EncounteredError) | 170 | if (!this.Messaging.EncounteredError) |
| 171 | { | 171 | { |
| 172 | componentTuple.ComponentId = this.BackendHelper.CreateGuid(BindDatabaseCommand.WixComponentGuidNamespace, path); | 172 | componentSymbol.ComponentId = this.BackendHelper.CreateGuid(BindDatabaseCommand.WixComponentGuidNamespace, path); |
| 173 | } | 173 | } |
| 174 | } | 174 | } |
| 175 | } | 175 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CopyTransformDataCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CopyTransformDataCommand.cs index 0dcce61b..8a85a975 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CopyTransformDataCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CopyTransformDataCommand.cs | |||
| @@ -11,7 +11,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 11 | using System.Linq; | 11 | using System.Linq; |
| 12 | using WixToolset.Core.Bind; | 12 | using WixToolset.Core.Bind; |
| 13 | using WixToolset.Data; | 13 | using WixToolset.Data; |
| 14 | using WixToolset.Data.Tuples; | 14 | using WixToolset.Data.Symbols; |
| 15 | using WixToolset.Data.WindowsInstaller; | 15 | using WixToolset.Data.WindowsInstaller; |
| 16 | using WixToolset.Data.WindowsInstaller.Rows; | 16 | using WixToolset.Data.WindowsInstaller.Rows; |
| 17 | using WixToolset.Extensibility; | 17 | using WixToolset.Extensibility; |
| @@ -463,9 +463,9 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 463 | ref duplicateFilesSequence); | 463 | ref duplicateFilesSequence); |
| 464 | if (!hasPatchFilesAction) | 464 | if (!hasPatchFilesAction) |
| 465 | { | 465 | { |
| 466 | WindowsInstallerStandard.TryGetStandardAction(tableName, "PatchFiles", out var patchFilesActionTuple); | 466 | WindowsInstallerStandard.TryGetStandardAction(tableName, "PatchFiles", out var patchFilesActionSymbol); |
| 467 | 467 | ||
| 468 | var sequence = patchFilesActionTuple.Sequence; | 468 | var sequence = patchFilesActionSymbol.Sequence; |
| 469 | 469 | ||
| 470 | // Test for default sequence value's appropriateness | 470 | // Test for default sequence value's appropriateness |
| 471 | if (installFilesSequence >= sequence || (0 != duplicateFilesSequence && duplicateFilesSequence <= sequence)) | 471 | if (installFilesSequence >= sequence || (0 != duplicateFilesSequence && duplicateFilesSequence <= sequence)) |
| @@ -474,14 +474,14 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 474 | { | 474 | { |
| 475 | if (duplicateFilesSequence < installFilesSequence) | 475 | if (duplicateFilesSequence < installFilesSequence) |
| 476 | { | 476 | { |
| 477 | throw new WixException(ErrorMessages.InsertInvalidSequenceActionOrder(mainFileRow.SourceLineNumbers, tableName, "InstallFiles", "DuplicateFiles", patchFilesActionTuple.Action)); | 477 | throw new WixException(ErrorMessages.InsertInvalidSequenceActionOrder(mainFileRow.SourceLineNumbers, tableName, "InstallFiles", "DuplicateFiles", patchFilesActionSymbol.Action)); |
| 478 | } | 478 | } |
| 479 | else | 479 | else |
| 480 | { | 480 | { |
| 481 | sequence = (duplicateFilesSequence + installFilesSequence) / 2; | 481 | sequence = (duplicateFilesSequence + installFilesSequence) / 2; |
| 482 | if (installFilesSequence == sequence || duplicateFilesSequence == sequence) | 482 | if (installFilesSequence == sequence || duplicateFilesSequence == sequence) |
| 483 | { | 483 | { |
| 484 | throw new WixException(ErrorMessages.InsertSequenceNoSpace(mainFileRow.SourceLineNumbers, tableName, "InstallFiles", "DuplicateFiles", patchFilesActionTuple.Action)); | 484 | throw new WixException(ErrorMessages.InsertSequenceNoSpace(mainFileRow.SourceLineNumbers, tableName, "InstallFiles", "DuplicateFiles", patchFilesActionSymbol.Action)); |
| 485 | } | 485 | } |
| 486 | } | 486 | } |
| 487 | } | 487 | } |
| @@ -498,8 +498,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 498 | } | 498 | } |
| 499 | 499 | ||
| 500 | var patchAction = sequenceTable.CreateRow(null); | 500 | var patchAction = sequenceTable.CreateRow(null); |
| 501 | patchAction[0] = patchFilesActionTuple.Action; | 501 | patchAction[0] = patchFilesActionSymbol.Action; |
| 502 | patchAction[1] = patchFilesActionTuple.Condition; | 502 | patchAction[1] = patchFilesActionSymbol.Condition; |
| 503 | patchAction[2] = sequence; | 503 | patchAction[2] = sequence; |
| 504 | patchAction.Operation = RowOperation.Add; | 504 | patchAction.Operation = RowOperation.Add; |
| 505 | } | 505 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CreateCabinetsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CreateCabinetsCommand.cs index 9741fcd9..5c296f74 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CreateCabinetsCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CreateCabinetsCommand.cs | |||
| @@ -10,7 +10,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 10 | using System.Runtime.InteropServices; | 10 | using System.Runtime.InteropServices; |
| 11 | using WixToolset.Core.Bind; | 11 | using WixToolset.Core.Bind; |
| 12 | using WixToolset.Data; | 12 | using WixToolset.Data; |
| 13 | using WixToolset.Data.Tuples; | 13 | using WixToolset.Data.Symbols; |
| 14 | using WixToolset.Data.WindowsInstaller; | 14 | using WixToolset.Data.WindowsInstaller; |
| 15 | using WixToolset.Extensibility; | 15 | using WixToolset.Extensibility; |
| 16 | using WixToolset.Extensibility.Data; | 16 | using WixToolset.Extensibility.Data; |
| @@ -32,7 +32,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 32 | 32 | ||
| 33 | private Dictionary<string, string> lastCabinetAddedToMediaTable; // Key is First Cabinet Name, Value is Last Cabinet Added in the Split Sequence | 33 | private Dictionary<string, string> lastCabinetAddedToMediaTable; // Key is First Cabinet Name, Value is Last Cabinet Added in the Split Sequence |
| 34 | 34 | ||
| 35 | public CreateCabinetsCommand(IWixToolsetServiceProvider serviceProvider, IBackendHelper backendHelper, WixMediaTemplateTuple mediaTemplate) | 35 | public CreateCabinetsCommand(IWixToolsetServiceProvider serviceProvider, IBackendHelper backendHelper, WixMediaTemplateSymbol mediaTemplate) |
| 36 | { | 36 | { |
| 37 | this.fileTransfers = new List<IFileTransfer>(); | 37 | this.fileTransfers = new List<IFileTransfer>(); |
| 38 | 38 | ||
| @@ -51,7 +51,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 51 | 51 | ||
| 52 | private IBackendHelper BackendHelper { get; } | 52 | private IBackendHelper BackendHelper { get; } |
| 53 | 53 | ||
| 54 | private WixMediaTemplateTuple MediaTemplate { get; } | 54 | private WixMediaTemplateSymbol MediaTemplate { get; } |
| 55 | 55 | ||
| 56 | /// <summary> | 56 | /// <summary> |
| 57 | /// Sets the number of threads to use for cabinet creation. | 57 | /// Sets the number of threads to use for cabinet creation. |
| @@ -80,9 +80,9 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 80 | 80 | ||
| 81 | public string ModularizationSuffix { private get; set; } | 81 | public string ModularizationSuffix { private get; set; } |
| 82 | 82 | ||
| 83 | public Dictionary<MediaTuple, IEnumerable<FileFacade>> FileFacadesByCabinet { private get; set; } | 83 | public Dictionary<MediaSymbol, IEnumerable<FileFacade>> FileFacadesByCabinet { private get; set; } |
| 84 | 84 | ||
| 85 | public Func<MediaTuple, string, string, string> ResolveMedia { private get; set; } | 85 | public Func<MediaSymbol, string, string, string> ResolveMedia { private get; set; } |
| 86 | 86 | ||
| 87 | public TableDefinitionCollection TableDefinitions { private get; set; } | 87 | public TableDefinitionCollection TableDefinitions { private get; set; } |
| 88 | 88 | ||
| @@ -113,12 +113,12 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 113 | 113 | ||
| 114 | foreach (var entry in this.FileFacadesByCabinet) | 114 | foreach (var entry in this.FileFacadesByCabinet) |
| 115 | { | 115 | { |
| 116 | var mediaTuple = entry.Key; | 116 | var mediaSymbol = entry.Key; |
| 117 | var files = entry.Value; | 117 | var files = entry.Value; |
| 118 | var compressionLevel = mediaTuple.CompressionLevel ?? this.DefaultCompressionLevel ?? CompressionLevel.Medium; | 118 | var compressionLevel = mediaSymbol.CompressionLevel ?? this.DefaultCompressionLevel ?? CompressionLevel.Medium; |
| 119 | var cabinetDir = this.ResolveMedia(mediaTuple, mediaTuple.Layout, this.LayoutDirectory); | 119 | var cabinetDir = this.ResolveMedia(mediaSymbol, mediaSymbol.Layout, this.LayoutDirectory); |
| 120 | 120 | ||
| 121 | var cabinetWorkItem = this.CreateCabinetWorkItem(this.Output, cabinetDir, mediaTuple, compressionLevel, files); | 121 | var cabinetWorkItem = this.CreateCabinetWorkItem(this.Output, cabinetDir, mediaSymbol, compressionLevel, files); |
| 122 | if (null != cabinetWorkItem) | 122 | if (null != cabinetWorkItem) |
| 123 | { | 123 | { |
| 124 | cabinetBuilder.Enqueue(cabinetWorkItem); | 124 | cabinetBuilder.Enqueue(cabinetWorkItem); |
| @@ -176,28 +176,28 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 176 | /// </summary> | 176 | /// </summary> |
| 177 | /// <param name="output">Output for the current database.</param> | 177 | /// <param name="output">Output for the current database.</param> |
| 178 | /// <param name="cabinetDir">Directory to create cabinet in.</param> | 178 | /// <param name="cabinetDir">Directory to create cabinet in.</param> |
| 179 | /// <param name="mediaTuple">Media tuple containing information about the cabinet.</param> | 179 | /// <param name="mediaSymbol">Media symbol containing information about the cabinet.</param> |
| 180 | /// <param name="fileFacades">Collection of files in this cabinet.</param> | 180 | /// <param name="fileFacades">Collection of files in this cabinet.</param> |
| 181 | /// <returns>created CabinetWorkItem object</returns> | 181 | /// <returns>created CabinetWorkItem object</returns> |
| 182 | private CabinetWorkItem CreateCabinetWorkItem(WindowsInstallerData output, string cabinetDir, MediaTuple mediaTuple, CompressionLevel compressionLevel, IEnumerable<FileFacade> fileFacades) | 182 | private CabinetWorkItem CreateCabinetWorkItem(WindowsInstallerData output, string cabinetDir, MediaSymbol mediaSymbol, CompressionLevel compressionLevel, IEnumerable<FileFacade> fileFacades) |
| 183 | { | 183 | { |
| 184 | CabinetWorkItem cabinetWorkItem = null; | 184 | CabinetWorkItem cabinetWorkItem = null; |
| 185 | var tempCabinetFileX = Path.Combine(this.IntermediateFolder, mediaTuple.Cabinet); | 185 | var tempCabinetFileX = Path.Combine(this.IntermediateFolder, mediaSymbol.Cabinet); |
| 186 | 186 | ||
| 187 | // check for an empty cabinet | 187 | // check for an empty cabinet |
| 188 | if (!fileFacades.Any()) | 188 | if (!fileFacades.Any()) |
| 189 | { | 189 | { |
| 190 | // Remove the leading '#' from the embedded cabinet name to make the warning easier to understand | 190 | // Remove the leading '#' from the embedded cabinet name to make the warning easier to understand |
| 191 | var cabinetName = mediaTuple.Cabinet.TrimStart('#'); | 191 | var cabinetName = mediaSymbol.Cabinet.TrimStart('#'); |
| 192 | 192 | ||
| 193 | // If building a patch, remind them to run -p for torch. | 193 | // If building a patch, remind them to run -p for torch. |
| 194 | if (OutputType.Patch == output.Type) | 194 | if (OutputType.Patch == output.Type) |
| 195 | { | 195 | { |
| 196 | this.Messaging.Write(WarningMessages.EmptyCabinet(mediaTuple.SourceLineNumbers, cabinetName, true)); | 196 | this.Messaging.Write(WarningMessages.EmptyCabinet(mediaSymbol.SourceLineNumbers, cabinetName, true)); |
| 197 | } | 197 | } |
| 198 | else | 198 | else |
| 199 | { | 199 | { |
| 200 | this.Messaging.Write(WarningMessages.EmptyCabinet(mediaTuple.SourceLineNumbers, cabinetName)); | 200 | this.Messaging.Write(WarningMessages.EmptyCabinet(mediaSymbol.SourceLineNumbers, cabinetName)); |
| 201 | } | 201 | } |
| 202 | } | 202 | } |
| 203 | 203 | ||
| @@ -213,7 +213,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 213 | } | 213 | } |
| 214 | else // reuse the cabinet from the cabinet cache. | 214 | else // reuse the cabinet from the cabinet cache. |
| 215 | { | 215 | { |
| 216 | this.Messaging.Write(VerboseMessages.ReusingCabCache(mediaTuple.SourceLineNumbers, mediaTuple.Cabinet, resolvedCabinet.Path)); | 216 | this.Messaging.Write(VerboseMessages.ReusingCabCache(mediaSymbol.SourceLineNumbers, mediaSymbol.Cabinet, resolvedCabinet.Path)); |
| 217 | 217 | ||
| 218 | try | 218 | try |
| 219 | { | 219 | { |
| @@ -227,27 +227,27 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 227 | } | 227 | } |
| 228 | catch (Exception e) | 228 | catch (Exception e) |
| 229 | { | 229 | { |
| 230 | this.Messaging.Write(WarningMessages.CannotUpdateCabCache(mediaTuple.SourceLineNumbers, resolvedCabinet.Path, e.Message)); | 230 | this.Messaging.Write(WarningMessages.CannotUpdateCabCache(mediaSymbol.SourceLineNumbers, resolvedCabinet.Path, e.Message)); |
| 231 | } | 231 | } |
| 232 | } | 232 | } |
| 233 | 233 | ||
| 234 | var trackResolvedCabinet = this.BackendHelper.TrackFile(resolvedCabinet.Path, TrackedFileType.Intermediate, mediaTuple.SourceLineNumbers); | 234 | var trackResolvedCabinet = this.BackendHelper.TrackFile(resolvedCabinet.Path, TrackedFileType.Intermediate, mediaSymbol.SourceLineNumbers); |
| 235 | this.trackedFiles.Add(trackResolvedCabinet); | 235 | this.trackedFiles.Add(trackResolvedCabinet); |
| 236 | 236 | ||
| 237 | if (mediaTuple.Cabinet.StartsWith("#", StringComparison.Ordinal)) | 237 | if (mediaSymbol.Cabinet.StartsWith("#", StringComparison.Ordinal)) |
| 238 | { | 238 | { |
| 239 | var streamsTable = output.EnsureTable(this.TableDefinitions["_Streams"]); | 239 | var streamsTable = output.EnsureTable(this.TableDefinitions["_Streams"]); |
| 240 | 240 | ||
| 241 | var streamRow = streamsTable.CreateRow(mediaTuple.SourceLineNumbers); | 241 | var streamRow = streamsTable.CreateRow(mediaSymbol.SourceLineNumbers); |
| 242 | streamRow[0] = mediaTuple.Cabinet.Substring(1); | 242 | streamRow[0] = mediaSymbol.Cabinet.Substring(1); |
| 243 | streamRow[1] = resolvedCabinet.Path; | 243 | streamRow[1] = resolvedCabinet.Path; |
| 244 | } | 244 | } |
| 245 | else | 245 | else |
| 246 | { | 246 | { |
| 247 | var trackDestination = this.BackendHelper.TrackFile(Path.Combine(cabinetDir, mediaTuple.Cabinet), TrackedFileType.Final, mediaTuple.SourceLineNumbers); | 247 | var trackDestination = this.BackendHelper.TrackFile(Path.Combine(cabinetDir, mediaSymbol.Cabinet), TrackedFileType.Final, mediaSymbol.SourceLineNumbers); |
| 248 | this.trackedFiles.Add(trackDestination); | 248 | this.trackedFiles.Add(trackDestination); |
| 249 | 249 | ||
| 250 | var transfer = this.BackendHelper.CreateFileTransfer(resolvedCabinet.Path, trackDestination.Path, resolvedCabinet.BuildOption == CabinetBuildOption.BuildAndMove, mediaTuple.SourceLineNumbers); | 250 | var transfer = this.BackendHelper.CreateFileTransfer(resolvedCabinet.Path, trackDestination.Path, resolvedCabinet.BuildOption == CabinetBuildOption.BuildAndMove, mediaSymbol.SourceLineNumbers); |
| 251 | this.fileTransfers.Add(transfer); | 251 | this.fileTransfers.Add(transfer); |
| 252 | } | 252 | } |
| 253 | 253 | ||
| @@ -372,7 +372,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 372 | } | 372 | } |
| 373 | 373 | ||
| 374 | // The new Row has to be inserted just after the last cab in this cabinet split chain according to DiskID Sort | 374 | // The new Row has to be inserted just after the last cab in this cabinet split chain according to DiskID Sort |
| 375 | // This is because the FDI Extract requires DiskID of Split Cabinets to be continuous. It Fails otherwise with | 375 | // This is because the FDI Extract requires DiskID of Split Cabinets to be continuous. It Fails otherwise with |
| 376 | // Error 2350 (FDI Server Error) as next DiskID did not have the right split cabinet during extraction | 376 | // Error 2350 (FDI Server Error) as next DiskID did not have the right split cabinet during extraction |
| 377 | MediaRow newMediaRow = (MediaRow)mediaTable.CreateRow(null); | 377 | MediaRow newMediaRow = (MediaRow)mediaTable.CreateRow(null); |
| 378 | newMediaRow.Cabinet = newCabinetName; | 378 | newMediaRow.Cabinet = newCabinetName; |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CreateDeltaPatchesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CreateDeltaPatchesCommand.cs index c54e9c53..93ac50ff 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CreateDeltaPatchesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CreateDeltaPatchesCommand.cs | |||
| @@ -8,14 +8,14 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 8 | using System.IO; | 8 | using System.IO; |
| 9 | using WixToolset.Core.Bind; | 9 | using WixToolset.Core.Bind; |
| 10 | using WixToolset.Data; | 10 | using WixToolset.Data; |
| 11 | using WixToolset.Data.Tuples; | 11 | using WixToolset.Data.Symbols; |
| 12 | 12 | ||
| 13 | /// <summary> | 13 | /// <summary> |
| 14 | /// Creates delta patches and updates the appropriate rows to point to the newly generated patches. | 14 | /// Creates delta patches and updates the appropriate rows to point to the newly generated patches. |
| 15 | /// </summary> | 15 | /// </summary> |
| 16 | internal class CreateDeltaPatchesCommand | 16 | internal class CreateDeltaPatchesCommand |
| 17 | { | 17 | { |
| 18 | public CreateDeltaPatchesCommand(List<FileFacade> fileFacades, string intermediateFolder, WixPatchIdTuple wixPatchId) | 18 | public CreateDeltaPatchesCommand(List<FileFacade> fileFacades, string intermediateFolder, WixPatchIdSymbol wixPatchId) |
| 19 | { | 19 | { |
| 20 | this.FileFacades = fileFacades; | 20 | this.FileFacades = fileFacades; |
| 21 | this.IntermediateFolder = intermediateFolder; | 21 | this.IntermediateFolder = intermediateFolder; |
| @@ -24,7 +24,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 24 | 24 | ||
| 25 | private IEnumerable<FileFacade> FileFacades { get; } | 25 | private IEnumerable<FileFacade> FileFacades { get; } |
| 26 | 26 | ||
| 27 | private WixPatchIdTuple WixPatchId { get; } | 27 | private WixPatchIdSymbol WixPatchId { get; } |
| 28 | 28 | ||
| 29 | private string IntermediateFolder { get; } | 29 | private string IntermediateFolder { get; } |
| 30 | 30 | ||
| @@ -73,7 +73,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 73 | } | 73 | } |
| 74 | } | 74 | } |
| 75 | } | 75 | } |
| 76 | #endif | 76 | #endif |
| 77 | 77 | ||
| 78 | throw new NotImplementedException(); | 78 | throw new NotImplementedException(); |
| 79 | } | 79 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CreateInstanceTransformsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CreateInstanceTransformsCommand.cs index 772100ca..33afca77 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CreateInstanceTransformsCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CreateInstanceTransformsCommand.cs | |||
| @@ -7,7 +7,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 7 | using System.Linq; | 7 | using System.Linq; |
| 8 | using WixToolset.Core.WindowsInstaller.Msi; | 8 | using WixToolset.Core.WindowsInstaller.Msi; |
| 9 | using WixToolset.Data; | 9 | using WixToolset.Data; |
| 10 | using WixToolset.Data.Tuples; | 10 | using WixToolset.Data.Symbols; |
| 11 | using WixToolset.Data.WindowsInstaller; | 11 | using WixToolset.Data.WindowsInstaller; |
| 12 | using WixToolset.Data.WindowsInstaller.Rows; | 12 | using WixToolset.Data.WindowsInstaller.Rows; |
| 13 | using WixToolset.Extensibility.Services; | 13 | using WixToolset.Extensibility.Services; |
| @@ -33,9 +33,9 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 33 | public void Execute() | 33 | public void Execute() |
| 34 | { | 34 | { |
| 35 | // Create and add substorages for instance transforms. | 35 | // Create and add substorages for instance transforms. |
| 36 | var wixInstanceTransformsTuples = this.Section.Tuples.OfType<WixInstanceTransformsTuple>(); | 36 | var wixInstanceTransformsSymbols = this.Section.Symbols.OfType<WixInstanceTransformsSymbol>(); |
| 37 | 37 | ||
| 38 | if (wixInstanceTransformsTuples.Any()) | 38 | if (wixInstanceTransformsSymbols.Any()) |
| 39 | { | 39 | { |
| 40 | string targetProductCode = null; | 40 | string targetProductCode = null; |
| 41 | string targetUpgradeCode = null; | 41 | string targetUpgradeCode = null; |
| @@ -62,7 +62,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | // Index the Instance Component Rows, we'll get the Components rows from the real Component table. | 64 | // Index the Instance Component Rows, we'll get the Components rows from the real Component table. |
| 65 | var targetInstanceComponentTable = this.Section.Tuples.OfType<WixInstanceComponentTuple>(); | 65 | var targetInstanceComponentTable = this.Section.Symbols.OfType<WixInstanceComponentSymbol>(); |
| 66 | var instanceComponentGuids = targetInstanceComponentTable.ToDictionary(t => t.Id.Id, t => (ComponentRow)null); | 66 | var instanceComponentGuids = targetInstanceComponentTable.ToDictionary(t => t.Id.Id, t => (ComponentRow)null); |
| 67 | 67 | ||
| 68 | if (instanceComponentGuids.Any()) | 68 | if (instanceComponentGuids.Any()) |
| @@ -79,11 +79,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | // Generate the instance transforms | 81 | // Generate the instance transforms |
| 82 | foreach (var instanceTuple in wixInstanceTransformsTuples) | 82 | foreach (var instanceSymbol in wixInstanceTransformsSymbols) |
| 83 | { | 83 | { |
| 84 | var instanceId = instanceTuple.Id.Id; | 84 | var instanceId = instanceSymbol.Id.Id; |
| 85 | 85 | ||
| 86 | var instanceTransform = new WindowsInstallerData(instanceTuple.SourceLineNumbers); | 86 | var instanceTransform = new WindowsInstallerData(instanceSymbol.SourceLineNumbers); |
| 87 | instanceTransform.Type = OutputType.Transform; | 87 | instanceTransform.Type = OutputType.Transform; |
| 88 | instanceTransform.Codepage = this.Output.Codepage; | 88 | instanceTransform.Codepage = this.Output.Codepage; |
| 89 | 89 | ||
| @@ -107,49 +107,49 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 107 | var propertyTable = instanceTransform.EnsureTable(this.TableDefinitions["Property"]); | 107 | var propertyTable = instanceTransform.EnsureTable(this.TableDefinitions["Property"]); |
| 108 | 108 | ||
| 109 | // Change the ProductCode property | 109 | // Change the ProductCode property |
| 110 | var productCode = instanceTuple.ProductCode; | 110 | var productCode = instanceSymbol.ProductCode; |
| 111 | if ("*" == productCode) | 111 | if ("*" == productCode) |
| 112 | { | 112 | { |
| 113 | productCode = Common.GenerateGuid(); | 113 | productCode = Common.GenerateGuid(); |
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | var productCodeRow = propertyTable.CreateRow(instanceTuple.SourceLineNumbers); | 116 | var productCodeRow = propertyTable.CreateRow(instanceSymbol.SourceLineNumbers); |
| 117 | productCodeRow.Operation = RowOperation.Modify; | 117 | productCodeRow.Operation = RowOperation.Modify; |
| 118 | productCodeRow.Fields[1].Modified = true; | 118 | productCodeRow.Fields[1].Modified = true; |
| 119 | productCodeRow[0] = "ProductCode"; | 119 | productCodeRow[0] = "ProductCode"; |
| 120 | productCodeRow[1] = productCode; | 120 | productCodeRow[1] = productCode; |
| 121 | 121 | ||
| 122 | // Change the instance property | 122 | // Change the instance property |
| 123 | var instanceIdRow = propertyTable.CreateRow(instanceTuple.SourceLineNumbers); | 123 | var instanceIdRow = propertyTable.CreateRow(instanceSymbol.SourceLineNumbers); |
| 124 | instanceIdRow.Operation = RowOperation.Modify; | 124 | instanceIdRow.Operation = RowOperation.Modify; |
| 125 | instanceIdRow.Fields[1].Modified = true; | 125 | instanceIdRow.Fields[1].Modified = true; |
| 126 | instanceIdRow[0] = instanceTuple.PropertyId; | 126 | instanceIdRow[0] = instanceSymbol.PropertyId; |
| 127 | instanceIdRow[1] = instanceId; | 127 | instanceIdRow[1] = instanceId; |
| 128 | 128 | ||
| 129 | if (!String.IsNullOrEmpty(instanceTuple.ProductName)) | 129 | if (!String.IsNullOrEmpty(instanceSymbol.ProductName)) |
| 130 | { | 130 | { |
| 131 | // Change the ProductName property | 131 | // Change the ProductName property |
| 132 | var productNameRow = propertyTable.CreateRow(instanceTuple.SourceLineNumbers); | 132 | var productNameRow = propertyTable.CreateRow(instanceSymbol.SourceLineNumbers); |
| 133 | productNameRow.Operation = RowOperation.Modify; | 133 | productNameRow.Operation = RowOperation.Modify; |
| 134 | productNameRow.Fields[1].Modified = true; | 134 | productNameRow.Fields[1].Modified = true; |
| 135 | productNameRow[0] = "ProductName"; | 135 | productNameRow[0] = "ProductName"; |
| 136 | productNameRow[1] = instanceTuple.ProductName; | 136 | productNameRow[1] = instanceSymbol.ProductName; |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | if (!String.IsNullOrEmpty(instanceTuple.UpgradeCode)) | 139 | if (!String.IsNullOrEmpty(instanceSymbol.UpgradeCode)) |
| 140 | { | 140 | { |
| 141 | // Change the UpgradeCode property | 141 | // Change the UpgradeCode property |
| 142 | var upgradeCodeRow = propertyTable.CreateRow(instanceTuple.SourceLineNumbers); | 142 | var upgradeCodeRow = propertyTable.CreateRow(instanceSymbol.SourceLineNumbers); |
| 143 | upgradeCodeRow.Operation = RowOperation.Modify; | 143 | upgradeCodeRow.Operation = RowOperation.Modify; |
| 144 | upgradeCodeRow.Fields[1].Modified = true; | 144 | upgradeCodeRow.Fields[1].Modified = true; |
| 145 | upgradeCodeRow[0] = "UpgradeCode"; | 145 | upgradeCodeRow[0] = "UpgradeCode"; |
| 146 | upgradeCodeRow[1] = instanceTuple.UpgradeCode; | 146 | upgradeCodeRow[1] = instanceSymbol.UpgradeCode; |
| 147 | 147 | ||
| 148 | // Change the Upgrade table | 148 | // Change the Upgrade table |
| 149 | var targetUpgradeTable = this.Output.Tables["Upgrade"]; | 149 | var targetUpgradeTable = this.Output.Tables["Upgrade"]; |
| 150 | if (null != targetUpgradeTable && 0 <= targetUpgradeTable.Rows.Count) | 150 | if (null != targetUpgradeTable && 0 <= targetUpgradeTable.Rows.Count) |
| 151 | { | 151 | { |
| 152 | var upgradeId = instanceTuple.UpgradeCode; | 152 | var upgradeId = instanceSymbol.UpgradeCode; |
| 153 | var upgradeTable = instanceTransform.EnsureTable(this.TableDefinitions["Upgrade"]); | 153 | var upgradeTable = instanceTransform.EnsureTable(this.TableDefinitions["Upgrade"]); |
| 154 | foreach (var row in targetUpgradeTable.Rows) | 154 | foreach (var row in targetUpgradeTable.Rows) |
| 155 | { | 155 | { |
| @@ -235,19 +235,19 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 235 | 235 | ||
| 236 | if (!summaryRows.ContainsKey((int)SummaryInformation.Transform.UpdatedPlatformAndLanguage)) | 236 | if (!summaryRows.ContainsKey((int)SummaryInformation.Transform.UpdatedPlatformAndLanguage)) |
| 237 | { | 237 | { |
| 238 | var summaryRow = instanceSummaryInformationTable.CreateRow(instanceTuple.SourceLineNumbers); | 238 | var summaryRow = instanceSummaryInformationTable.CreateRow(instanceSymbol.SourceLineNumbers); |
| 239 | summaryRow[0] = (int)SummaryInformation.Transform.UpdatedPlatformAndLanguage; | 239 | summaryRow[0] = (int)SummaryInformation.Transform.UpdatedPlatformAndLanguage; |
| 240 | summaryRow[1] = targetPlatformAndLanguage; | 240 | summaryRow[1] = targetPlatformAndLanguage; |
| 241 | } | 241 | } |
| 242 | else if (!summaryRows.ContainsKey((int)SummaryInformation.Transform.ValidationFlags)) | 242 | else if (!summaryRows.ContainsKey((int)SummaryInformation.Transform.ValidationFlags)) |
| 243 | { | 243 | { |
| 244 | var summaryRow = instanceSummaryInformationTable.CreateRow(instanceTuple.SourceLineNumbers); | 244 | var summaryRow = instanceSummaryInformationTable.CreateRow(instanceSymbol.SourceLineNumbers); |
| 245 | summaryRow[0] = (int)SummaryInformation.Transform.ValidationFlags; | 245 | summaryRow[0] = (int)SummaryInformation.Transform.ValidationFlags; |
| 246 | summaryRow[1] = "0"; | 246 | summaryRow[1] = "0"; |
| 247 | } | 247 | } |
| 248 | else if (!summaryRows.ContainsKey((int)SummaryInformation.Transform.Security)) | 248 | else if (!summaryRows.ContainsKey((int)SummaryInformation.Transform.Security)) |
| 249 | { | 249 | { |
| 250 | var summaryRow = instanceSummaryInformationTable.CreateRow(instanceTuple.SourceLineNumbers); | 250 | var summaryRow = instanceSummaryInformationTable.CreateRow(instanceSymbol.SourceLineNumbers); |
| 251 | summaryRow[0] = (int)SummaryInformation.Transform.Security; | 251 | summaryRow[0] = (int)SummaryInformation.Transform.Security; |
| 252 | summaryRow[1] = "4"; | 252 | summaryRow[1] = "4"; |
| 253 | } | 253 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs index 90d1c148..052b30e3 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs | |||
| @@ -7,7 +7,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 7 | using System.Globalization; | 7 | using System.Globalization; |
| 8 | using System.Linq; | 8 | using System.Linq; |
| 9 | using WixToolset.Data; | 9 | using WixToolset.Data; |
| 10 | using WixToolset.Data.Tuples; | 10 | using WixToolset.Data.Symbols; |
| 11 | using WixToolset.Data.WindowsInstaller; | 11 | using WixToolset.Data.WindowsInstaller; |
| 12 | using WixToolset.Data.WindowsInstaller.Rows; | 12 | using WixToolset.Data.WindowsInstaller.Rows; |
| 13 | using WixToolset.Extensibility; | 13 | using WixToolset.Extensibility; |
| @@ -38,7 +38,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 38 | 38 | ||
| 39 | public void Execute() | 39 | public void Execute() |
| 40 | { | 40 | { |
| 41 | this.Output = new WindowsInstallerData(this.Section.Tuples.First().SourceLineNumbers) | 41 | this.Output = new WindowsInstallerData(this.Section.Symbols.First().SourceLineNumbers) |
| 42 | { | 42 | { |
| 43 | Codepage = this.Section.Codepage, | 43 | Codepage = this.Section.Codepage, |
| 44 | Type = SectionTypeToOutputType(this.Section.Type) | 44 | Type = SectionTypeToOutputType(this.Section.Type) |
| @@ -49,388 +49,388 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 49 | 49 | ||
| 50 | private void AddSectionToOutput() | 50 | private void AddSectionToOutput() |
| 51 | { | 51 | { |
| 52 | var cellsByTableAndRowId = new Dictionary<string, List<WixCustomTableCellTuple>>(); | 52 | var cellsByTableAndRowId = new Dictionary<string, List<WixCustomTableCellSymbol>>(); |
| 53 | 53 | ||
| 54 | foreach (var tuple in this.Section.Tuples) | 54 | foreach (var symbol in this.Section.Symbols) |
| 55 | { | 55 | { |
| 56 | var unknownTuple = false; | 56 | var unknownSymbol = false; |
| 57 | switch (tuple.Definition.Type) | 57 | switch (symbol.Definition.Type) |
| 58 | { | 58 | { |
| 59 | case TupleDefinitionType.AppSearch: | 59 | case SymbolDefinitionType.AppSearch: |
| 60 | this.AddTupleDefaultly(tuple); | 60 | this.AddSymbolDefaultly(symbol); |
| 61 | this.Output.EnsureTable(this.TableDefinitions["Signature"]); | 61 | this.Output.EnsureTable(this.TableDefinitions["Signature"]); |
| 62 | break; | 62 | break; |
| 63 | 63 | ||
| 64 | case TupleDefinitionType.Assembly: | 64 | case SymbolDefinitionType.Assembly: |
| 65 | this.AddAssemblyTuple((AssemblyTuple)tuple); | 65 | this.AddAssemblySymbol((AssemblySymbol)symbol); |
| 66 | break; | 66 | break; |
| 67 | 67 | ||
| 68 | case TupleDefinitionType.BBControl: | 68 | case SymbolDefinitionType.BBControl: |
| 69 | this.AddBBControlTuple((BBControlTuple)tuple); | 69 | this.AddBBControlSymbol((BBControlSymbol)symbol); |
| 70 | break; | 70 | break; |
| 71 | 71 | ||
| 72 | case TupleDefinitionType.Class: | 72 | case SymbolDefinitionType.Class: |
| 73 | this.AddClassTuple((ClassTuple)tuple); | 73 | this.AddClassSymbol((ClassSymbol)symbol); |
| 74 | break; | 74 | break; |
| 75 | 75 | ||
| 76 | case TupleDefinitionType.Control: | 76 | case SymbolDefinitionType.Control: |
| 77 | this.AddControlTuple((ControlTuple)tuple); | 77 | this.AddControlSymbol((ControlSymbol)symbol); |
| 78 | break; | 78 | break; |
| 79 | 79 | ||
| 80 | case TupleDefinitionType.Component: | 80 | case SymbolDefinitionType.Component: |
| 81 | this.AddComponentTuple((ComponentTuple)tuple); | 81 | this.AddComponentSymbol((ComponentSymbol)symbol); |
| 82 | break; | 82 | break; |
| 83 | 83 | ||
| 84 | case TupleDefinitionType.CustomAction: | 84 | case SymbolDefinitionType.CustomAction: |
| 85 | this.AddCustomActionTuple((CustomActionTuple)tuple); | 85 | this.AddCustomActionSymbol((CustomActionSymbol)symbol); |
| 86 | break; | 86 | break; |
| 87 | 87 | ||
| 88 | case TupleDefinitionType.Dialog: | 88 | case SymbolDefinitionType.Dialog: |
| 89 | this.AddDialogTuple((DialogTuple)tuple); | 89 | this.AddDialogSymbol((DialogSymbol)symbol); |
| 90 | break; | 90 | break; |
| 91 | 91 | ||
| 92 | case TupleDefinitionType.Directory: | 92 | case SymbolDefinitionType.Directory: |
| 93 | this.AddDirectoryTuple((DirectoryTuple)tuple); | 93 | this.AddDirectorySymbol((DirectorySymbol)symbol); |
| 94 | break; | 94 | break; |
| 95 | 95 | ||
| 96 | case TupleDefinitionType.Environment: | 96 | case SymbolDefinitionType.Environment: |
| 97 | this.AddEnvironmentTuple((EnvironmentTuple)tuple); | 97 | this.AddEnvironmentSymbol((EnvironmentSymbol)symbol); |
| 98 | break; | 98 | break; |
| 99 | 99 | ||
| 100 | case TupleDefinitionType.Error: | 100 | case SymbolDefinitionType.Error: |
| 101 | this.AddErrorTuple((ErrorTuple)tuple); | 101 | this.AddErrorSymbol((ErrorSymbol)symbol); |
| 102 | break; | 102 | break; |
| 103 | 103 | ||
| 104 | case TupleDefinitionType.Feature: | 104 | case SymbolDefinitionType.Feature: |
| 105 | this.AddFeatureTuple((FeatureTuple)tuple); | 105 | this.AddFeatureSymbol((FeatureSymbol)symbol); |
| 106 | break; | 106 | break; |
| 107 | 107 | ||
| 108 | case TupleDefinitionType.File: | 108 | case SymbolDefinitionType.File: |
| 109 | this.AddFileTuple((FileTuple)tuple); | 109 | this.AddFileSymbol((FileSymbol)symbol); |
| 110 | break; | 110 | break; |
| 111 | 111 | ||
| 112 | case TupleDefinitionType.IniFile: | 112 | case SymbolDefinitionType.IniFile: |
| 113 | this.AddIniFileTuple((IniFileTuple)tuple); | 113 | this.AddIniFileSymbol((IniFileSymbol)symbol); |
| 114 | break; | 114 | break; |
| 115 | 115 | ||
| 116 | case TupleDefinitionType.Media: | 116 | case SymbolDefinitionType.Media: |
| 117 | this.AddMediaTuple((MediaTuple)tuple); | 117 | this.AddMediaSymbol((MediaSymbol)symbol); |
| 118 | break; | 118 | break; |
| 119 | 119 | ||
| 120 | case TupleDefinitionType.ModuleConfiguration: | 120 | case SymbolDefinitionType.ModuleConfiguration: |
| 121 | this.AddModuleConfigurationTuple((ModuleConfigurationTuple)tuple); | 121 | this.AddModuleConfigurationSymbol((ModuleConfigurationSymbol)symbol); |
| 122 | break; | 122 | break; |
| 123 | 123 | ||
| 124 | case TupleDefinitionType.MsiEmbeddedUI: | 124 | case SymbolDefinitionType.MsiEmbeddedUI: |
| 125 | this.AddMsiEmbeddedUITuple((MsiEmbeddedUITuple)tuple); | 125 | this.AddMsiEmbeddedUISymbol((MsiEmbeddedUISymbol)symbol); |
| 126 | break; | 126 | break; |
| 127 | 127 | ||
| 128 | case TupleDefinitionType.MsiServiceConfig: | 128 | case SymbolDefinitionType.MsiServiceConfig: |
| 129 | this.AddMsiServiceConfigTuple((MsiServiceConfigTuple)tuple); | 129 | this.AddMsiServiceConfigSymbol((MsiServiceConfigSymbol)symbol); |
| 130 | break; | 130 | break; |
| 131 | 131 | ||
| 132 | case TupleDefinitionType.MsiServiceConfigFailureActions: | 132 | case SymbolDefinitionType.MsiServiceConfigFailureActions: |
| 133 | this.AddMsiServiceConfigFailureActionsTuple((MsiServiceConfigFailureActionsTuple)tuple); | 133 | this.AddMsiServiceConfigFailureActionsSymbol((MsiServiceConfigFailureActionsSymbol)symbol); |
| 134 | break; | 134 | break; |
| 135 | 135 | ||
| 136 | case TupleDefinitionType.MoveFile: | 136 | case SymbolDefinitionType.MoveFile: |
| 137 | this.AddMoveFileTuple((MoveFileTuple)tuple); | 137 | this.AddMoveFileSymbol((MoveFileSymbol)symbol); |
| 138 | break; | 138 | break; |
| 139 | 139 | ||
| 140 | case TupleDefinitionType.ProgId: | 140 | case SymbolDefinitionType.ProgId: |
| 141 | this.AddTupleDefaultly(tuple); | 141 | this.AddSymbolDefaultly(symbol); |
| 142 | this.Output.EnsureTable(this.TableDefinitions["Extension"]); | 142 | this.Output.EnsureTable(this.TableDefinitions["Extension"]); |
| 143 | break; | 143 | break; |
| 144 | 144 | ||
| 145 | case TupleDefinitionType.Property: | 145 | case SymbolDefinitionType.Property: |
| 146 | this.AddPropertyTuple((PropertyTuple)tuple); | 146 | this.AddPropertySymbol((PropertySymbol)symbol); |
| 147 | break; | 147 | break; |
| 148 | 148 | ||
| 149 | case TupleDefinitionType.RemoveFile: | 149 | case SymbolDefinitionType.RemoveFile: |
| 150 | this.AddRemoveFileTuple((RemoveFileTuple)tuple); | 150 | this.AddRemoveFileSymbol((RemoveFileSymbol)symbol); |
| 151 | break; | 151 | break; |
| 152 | 152 | ||
| 153 | case TupleDefinitionType.Registry: | 153 | case SymbolDefinitionType.Registry: |
| 154 | this.AddRegistryTuple((RegistryTuple)tuple); | 154 | this.AddRegistrySymbol((RegistrySymbol)symbol); |
| 155 | break; | 155 | break; |
| 156 | 156 | ||
| 157 | case TupleDefinitionType.RegLocator: | 157 | case SymbolDefinitionType.RegLocator: |
| 158 | this.AddRegLocatorTuple((RegLocatorTuple)tuple); | 158 | this.AddRegLocatorSymbol((RegLocatorSymbol)symbol); |
| 159 | break; | 159 | break; |
| 160 | 160 | ||
| 161 | case TupleDefinitionType.RemoveRegistry: | 161 | case SymbolDefinitionType.RemoveRegistry: |
| 162 | this.AddRemoveRegistryTuple((RemoveRegistryTuple)tuple); | 162 | this.AddRemoveRegistrySymbol((RemoveRegistrySymbol)symbol); |
| 163 | break; | 163 | break; |
| 164 | 164 | ||
| 165 | case TupleDefinitionType.ServiceControl: | 165 | case SymbolDefinitionType.ServiceControl: |
| 166 | this.AddServiceControlTuple((ServiceControlTuple)tuple); | 166 | this.AddServiceControlSymbol((ServiceControlSymbol)symbol); |
| 167 | break; | 167 | break; |
| 168 | 168 | ||
| 169 | case TupleDefinitionType.ServiceInstall: | 169 | case SymbolDefinitionType.ServiceInstall: |
| 170 | this.AddServiceInstallTuple((ServiceInstallTuple)tuple); | 170 | this.AddServiceInstallSymbol((ServiceInstallSymbol)symbol); |
| 171 | break; | 171 | break; |
| 172 | 172 | ||
| 173 | case TupleDefinitionType.Shortcut: | 173 | case SymbolDefinitionType.Shortcut: |
| 174 | this.AddShortcutTuple((ShortcutTuple)tuple); | 174 | this.AddShortcutSymbol((ShortcutSymbol)symbol); |
| 175 | break; | 175 | break; |
| 176 | 176 | ||
| 177 | case TupleDefinitionType.TextStyle: | 177 | case SymbolDefinitionType.TextStyle: |
| 178 | this.AddTextStyleTuple((TextStyleTuple)tuple); | 178 | this.AddTextStyleSymbol((TextStyleSymbol)symbol); |
| 179 | break; | 179 | break; |
| 180 | 180 | ||
| 181 | case TupleDefinitionType.Upgrade: | 181 | case SymbolDefinitionType.Upgrade: |
| 182 | this.AddUpgradeTuple((UpgradeTuple)tuple); | 182 | this.AddUpgradeSymbol((UpgradeSymbol)symbol); |
| 183 | break; | 183 | break; |
| 184 | 184 | ||
| 185 | case TupleDefinitionType.WixAction: | 185 | case SymbolDefinitionType.WixAction: |
| 186 | this.AddWixActionTuple((WixActionTuple)tuple); | 186 | this.AddWixActionSymbol((WixActionSymbol)symbol); |
| 187 | break; | 187 | break; |
| 188 | 188 | ||
| 189 | case TupleDefinitionType.WixCustomTableCell: | 189 | case SymbolDefinitionType.WixCustomTableCell: |
| 190 | this.IndexCustomTableCellTuple((WixCustomTableCellTuple)tuple, cellsByTableAndRowId); | 190 | this.IndexCustomTableCellSymbol((WixCustomTableCellSymbol)symbol, cellsByTableAndRowId); |
| 191 | break; | 191 | break; |
| 192 | 192 | ||
| 193 | case TupleDefinitionType.WixEnsureTable: | 193 | case SymbolDefinitionType.WixEnsureTable: |
| 194 | this.AddWixEnsureTableTuple((WixEnsureTableTuple)tuple); | 194 | this.AddWixEnsureTableSymbol((WixEnsureTableSymbol)symbol); |
| 195 | break; | 195 | break; |
| 196 | 196 | ||
| 197 | // Tuples used internally and are not added to the output. | 197 | // Symbols used internally and are not added to the output. |
| 198 | case TupleDefinitionType.WixBuildInfo: | 198 | case SymbolDefinitionType.WixBuildInfo: |
| 199 | case TupleDefinitionType.WixBindUpdatedFiles: | 199 | case SymbolDefinitionType.WixBindUpdatedFiles: |
| 200 | case TupleDefinitionType.WixComponentGroup: | 200 | case SymbolDefinitionType.WixComponentGroup: |
| 201 | case TupleDefinitionType.WixComplexReference: | 201 | case SymbolDefinitionType.WixComplexReference: |
| 202 | case TupleDefinitionType.WixDeltaPatchFile: | 202 | case SymbolDefinitionType.WixDeltaPatchFile: |
| 203 | case TupleDefinitionType.WixDeltaPatchSymbolPaths: | 203 | case SymbolDefinitionType.WixDeltaPatchSymbolPaths: |
| 204 | case TupleDefinitionType.WixFragment: | 204 | case SymbolDefinitionType.WixFragment: |
| 205 | case TupleDefinitionType.WixFeatureGroup: | 205 | case SymbolDefinitionType.WixFeatureGroup: |
| 206 | case TupleDefinitionType.WixInstanceComponent: | 206 | case SymbolDefinitionType.WixInstanceComponent: |
| 207 | case TupleDefinitionType.WixInstanceTransforms: | 207 | case SymbolDefinitionType.WixInstanceTransforms: |
| 208 | case TupleDefinitionType.WixFeatureModules: | 208 | case SymbolDefinitionType.WixFeatureModules: |
| 209 | case TupleDefinitionType.WixGroup: | 209 | case SymbolDefinitionType.WixGroup: |
| 210 | case TupleDefinitionType.WixMediaTemplate: | 210 | case SymbolDefinitionType.WixMediaTemplate: |
| 211 | case TupleDefinitionType.WixMerge: | 211 | case SymbolDefinitionType.WixMerge: |
| 212 | case TupleDefinitionType.WixOrdering: | 212 | case SymbolDefinitionType.WixOrdering: |
| 213 | case TupleDefinitionType.WixPatchBaseline: | 213 | case SymbolDefinitionType.WixPatchBaseline: |
| 214 | case TupleDefinitionType.WixPatchFamilyGroup: | 214 | case SymbolDefinitionType.WixPatchFamilyGroup: |
| 215 | case TupleDefinitionType.WixPatchId: | 215 | case SymbolDefinitionType.WixPatchId: |
| 216 | case TupleDefinitionType.WixPatchRef: | 216 | case SymbolDefinitionType.WixPatchRef: |
| 217 | case TupleDefinitionType.WixPatchTarget: | 217 | case SymbolDefinitionType.WixPatchTarget: |
| 218 | case TupleDefinitionType.WixProperty: | 218 | case SymbolDefinitionType.WixProperty: |
| 219 | case TupleDefinitionType.WixSimpleReference: | 219 | case SymbolDefinitionType.WixSimpleReference: |
| 220 | case TupleDefinitionType.WixSuppressAction: | 220 | case SymbolDefinitionType.WixSuppressAction: |
| 221 | case TupleDefinitionType.WixSuppressModularization: | 221 | case SymbolDefinitionType.WixSuppressModularization: |
| 222 | case TupleDefinitionType.WixUI: | 222 | case SymbolDefinitionType.WixUI: |
| 223 | case TupleDefinitionType.WixVariable: | 223 | case SymbolDefinitionType.WixVariable: |
| 224 | break; | 224 | break; |
| 225 | 225 | ||
| 226 | // Already processed by LoadTableDefinitions. | 226 | // Already processed by LoadTableDefinitions. |
| 227 | case TupleDefinitionType.WixCustomTable: | 227 | case SymbolDefinitionType.WixCustomTable: |
| 228 | case TupleDefinitionType.WixCustomTableColumn: | 228 | case SymbolDefinitionType.WixCustomTableColumn: |
| 229 | break; | 229 | break; |
| 230 | 230 | ||
| 231 | case TupleDefinitionType.MustBeFromAnExtension: | 231 | case SymbolDefinitionType.MustBeFromAnExtension: |
| 232 | unknownTuple = !this.AddTupleFromExtension(tuple); | 232 | unknownSymbol = !this.AddSymbolFromExtension(symbol); |
| 233 | break; | 233 | break; |
| 234 | 234 | ||
| 235 | default: | 235 | default: |
| 236 | unknownTuple = !this.AddTupleDefaultly(tuple); | 236 | unknownSymbol = !this.AddSymbolDefaultly(symbol); |
| 237 | break; | 237 | break; |
| 238 | } | 238 | } |
| 239 | 239 | ||
| 240 | if (unknownTuple) | 240 | if (unknownSymbol) |
| 241 | { | 241 | { |
| 242 | this.Messaging.Write(WarningMessages.TupleNotTranslatedToOutput(tuple)); | 242 | this.Messaging.Write(WarningMessages.SymbolNotTranslatedToOutput(symbol)); |
| 243 | } | 243 | } |
| 244 | } | 244 | } |
| 245 | 245 | ||
| 246 | this.AddIndexedCellTuples(cellsByTableAndRowId); | 246 | this.AddIndexedCellSymbols(cellsByTableAndRowId); |
| 247 | } | 247 | } |
| 248 | 248 | ||
| 249 | private void AddAssemblyTuple(AssemblyTuple tuple) | 249 | private void AddAssemblySymbol(AssemblySymbol symbol) |
| 250 | { | 250 | { |
| 251 | var attributes = tuple.Type == AssemblyType.Win32Assembly ? 1 : (int?)null; | 251 | var attributes = symbol.Type == AssemblyType.Win32Assembly ? 1 : (int?)null; |
| 252 | 252 | ||
| 253 | var row = this.CreateRow(tuple, "MsiAssembly"); | 253 | var row = this.CreateRow(symbol, "MsiAssembly"); |
| 254 | row[0] = tuple.ComponentRef; | 254 | row[0] = symbol.ComponentRef; |
| 255 | row[1] = tuple.FeatureRef; | 255 | row[1] = symbol.FeatureRef; |
| 256 | row[2] = tuple.ManifestFileRef; | 256 | row[2] = symbol.ManifestFileRef; |
| 257 | row[3] = tuple.ApplicationFileRef; | 257 | row[3] = symbol.ApplicationFileRef; |
| 258 | row[4] = attributes; | 258 | row[4] = attributes; |
| 259 | } | 259 | } |
| 260 | 260 | ||
| 261 | private void AddBBControlTuple(BBControlTuple tuple) | 261 | private void AddBBControlSymbol(BBControlSymbol symbol) |
| 262 | { | 262 | { |
| 263 | var attributes = tuple.Attributes; | 263 | var attributes = symbol.Attributes; |
| 264 | attributes |= tuple.Enabled ? WindowsInstallerConstants.MsidbControlAttributesEnabled : 0; | 264 | attributes |= symbol.Enabled ? WindowsInstallerConstants.MsidbControlAttributesEnabled : 0; |
| 265 | attributes |= tuple.Indirect ? WindowsInstallerConstants.MsidbControlAttributesIndirect : 0; | 265 | attributes |= symbol.Indirect ? WindowsInstallerConstants.MsidbControlAttributesIndirect : 0; |
| 266 | attributes |= tuple.Integer ? WindowsInstallerConstants.MsidbControlAttributesInteger : 0; | 266 | attributes |= symbol.Integer ? WindowsInstallerConstants.MsidbControlAttributesInteger : 0; |
| 267 | attributes |= tuple.LeftScroll ? WindowsInstallerConstants.MsidbControlAttributesLeftScroll : 0; | 267 | attributes |= symbol.LeftScroll ? WindowsInstallerConstants.MsidbControlAttributesLeftScroll : 0; |
| 268 | attributes |= tuple.RightAligned ? WindowsInstallerConstants.MsidbControlAttributesRightAligned : 0; | 268 | attributes |= symbol.RightAligned ? WindowsInstallerConstants.MsidbControlAttributesRightAligned : 0; |
| 269 | attributes |= tuple.RightToLeft ? WindowsInstallerConstants.MsidbControlAttributesRTLRO : 0; | 269 | attributes |= symbol.RightToLeft ? WindowsInstallerConstants.MsidbControlAttributesRTLRO : 0; |
| 270 | attributes |= tuple.Sunken ? WindowsInstallerConstants.MsidbControlAttributesSunken : 0; | 270 | attributes |= symbol.Sunken ? WindowsInstallerConstants.MsidbControlAttributesSunken : 0; |
| 271 | attributes |= tuple.Visible ? WindowsInstallerConstants.MsidbControlAttributesVisible : 0; | 271 | attributes |= symbol.Visible ? WindowsInstallerConstants.MsidbControlAttributesVisible : 0; |
| 272 | 272 | ||
| 273 | var row = this.CreateRow(tuple, "BBControl"); | 273 | var row = this.CreateRow(symbol, "BBControl"); |
| 274 | row[0] = tuple.BillboardRef; | 274 | row[0] = symbol.BillboardRef; |
| 275 | row[1] = tuple.BBControl; | 275 | row[1] = symbol.BBControl; |
| 276 | row[2] = tuple.Type; | 276 | row[2] = symbol.Type; |
| 277 | row[3] = tuple.X; | 277 | row[3] = symbol.X; |
| 278 | row[4] = tuple.Y; | 278 | row[4] = symbol.Y; |
| 279 | row[5] = tuple.Width; | 279 | row[5] = symbol.Width; |
| 280 | row[6] = tuple.Height; | 280 | row[6] = symbol.Height; |
| 281 | row[7] = attributes; | 281 | row[7] = attributes; |
| 282 | row[8] = tuple.Text; | 282 | row[8] = symbol.Text; |
| 283 | } | 283 | } |
| 284 | 284 | ||
| 285 | private void AddClassTuple(ClassTuple tuple) | 285 | private void AddClassSymbol(ClassSymbol symbol) |
| 286 | { | 286 | { |
| 287 | var row = this.CreateRow(tuple, "Class"); | 287 | var row = this.CreateRow(symbol, "Class"); |
| 288 | row[0] = tuple.CLSID; | 288 | row[0] = symbol.CLSID; |
| 289 | row[1] = tuple.Context; | 289 | row[1] = symbol.Context; |
| 290 | row[2] = tuple.ComponentRef; | 290 | row[2] = symbol.ComponentRef; |
| 291 | row[3] = tuple.DefaultProgIdRef; | 291 | row[3] = symbol.DefaultProgIdRef; |
| 292 | row[4] = tuple.Description; | 292 | row[4] = symbol.Description; |
| 293 | row[5] = tuple.AppIdRef; | 293 | row[5] = symbol.AppIdRef; |
| 294 | row[6] = tuple.FileTypeMask; | 294 | row[6] = symbol.FileTypeMask; |
| 295 | row[7] = tuple.IconRef; | 295 | row[7] = symbol.IconRef; |
| 296 | row[8] = tuple.IconIndex; | 296 | row[8] = symbol.IconIndex; |
| 297 | row[9] = tuple.DefInprocHandler; | 297 | row[9] = symbol.DefInprocHandler; |
| 298 | row[10] = tuple.Argument; | 298 | row[10] = symbol.Argument; |
| 299 | row[11] = tuple.FeatureRef; | 299 | row[11] = symbol.FeatureRef; |
| 300 | row[12] = tuple.RelativePath ? (int?)1 : null; | 300 | row[12] = symbol.RelativePath ? (int?)1 : null; |
| 301 | } | 301 | } |
| 302 | 302 | ||
| 303 | private void AddControlTuple(ControlTuple tuple) | 303 | private void AddControlSymbol(ControlSymbol symbol) |
| 304 | { | 304 | { |
| 305 | var text = tuple.Text; | 305 | var text = symbol.Text; |
| 306 | var attributes = tuple.Attributes; | 306 | var attributes = symbol.Attributes; |
| 307 | attributes |= tuple.Enabled ? WindowsInstallerConstants.MsidbControlAttributesEnabled : 0; | 307 | attributes |= symbol.Enabled ? WindowsInstallerConstants.MsidbControlAttributesEnabled : 0; |
| 308 | attributes |= tuple.Indirect ? WindowsInstallerConstants.MsidbControlAttributesIndirect : 0; | 308 | attributes |= symbol.Indirect ? WindowsInstallerConstants.MsidbControlAttributesIndirect : 0; |
| 309 | attributes |= tuple.Integer ? WindowsInstallerConstants.MsidbControlAttributesInteger : 0; | 309 | attributes |= symbol.Integer ? WindowsInstallerConstants.MsidbControlAttributesInteger : 0; |
| 310 | attributes |= tuple.LeftScroll ? WindowsInstallerConstants.MsidbControlAttributesLeftScroll : 0; | 310 | attributes |= symbol.LeftScroll ? WindowsInstallerConstants.MsidbControlAttributesLeftScroll : 0; |
| 311 | attributes |= tuple.RightAligned ? WindowsInstallerConstants.MsidbControlAttributesRightAligned : 0; | 311 | attributes |= symbol.RightAligned ? WindowsInstallerConstants.MsidbControlAttributesRightAligned : 0; |
| 312 | attributes |= tuple.RightToLeft ? WindowsInstallerConstants.MsidbControlAttributesRTLRO : 0; | 312 | attributes |= symbol.RightToLeft ? WindowsInstallerConstants.MsidbControlAttributesRTLRO : 0; |
| 313 | attributes |= tuple.Sunken ? WindowsInstallerConstants.MsidbControlAttributesSunken : 0; | 313 | attributes |= symbol.Sunken ? WindowsInstallerConstants.MsidbControlAttributesSunken : 0; |
| 314 | attributes |= tuple.Visible ? WindowsInstallerConstants.MsidbControlAttributesVisible : 0; | 314 | attributes |= symbol.Visible ? WindowsInstallerConstants.MsidbControlAttributesVisible : 0; |
| 315 | 315 | ||
| 316 | // If we're tracking disk space, and this is a non-FormatSize Text control, | 316 | // If we're tracking disk space, and this is a non-FormatSize Text control, |
| 317 | // and the text attribute starts with '[' and ends with ']', add a space. | 317 | // and the text attribute starts with '[' and ends with ']', add a space. |
| 318 | // It is not necessary for the whole string to be a property, just those | 318 | // It is not necessary for the whole string to be a property, just those |
| 319 | // two characters matter. | 319 | // two characters matter. |
| 320 | if (tuple.TrackDiskSpace && | 320 | if (symbol.TrackDiskSpace && |
| 321 | "Text" == tuple.Type && | 321 | "Text" == symbol.Type && |
| 322 | WindowsInstallerConstants.MsidbControlAttributesFormatSize != (attributes & WindowsInstallerConstants.MsidbControlAttributesFormatSize) && | 322 | WindowsInstallerConstants.MsidbControlAttributesFormatSize != (attributes & WindowsInstallerConstants.MsidbControlAttributesFormatSize) && |
| 323 | null != text && text.StartsWith("[", StringComparison.Ordinal) && text.EndsWith("]", StringComparison.Ordinal)) | 323 | null != text && text.StartsWith("[", StringComparison.Ordinal) && text.EndsWith("]", StringComparison.Ordinal)) |
| 324 | { | 324 | { |
| 325 | text = String.Concat(text, " "); | 325 | text = String.Concat(text, " "); |
| 326 | } | 326 | } |
| 327 | 327 | ||
| 328 | var row = this.CreateRow(tuple, "Control"); | 328 | var row = this.CreateRow(symbol, "Control"); |
| 329 | row[0] = tuple.DialogRef; | 329 | row[0] = symbol.DialogRef; |
| 330 | row[1] = tuple.Control; | 330 | row[1] = symbol.Control; |
| 331 | row[2] = tuple.Type; | 331 | row[2] = symbol.Type; |
| 332 | row[3] = tuple.X; | 332 | row[3] = symbol.X; |
| 333 | row[4] = tuple.Y; | 333 | row[4] = symbol.Y; |
| 334 | row[5] = tuple.Width; | 334 | row[5] = symbol.Width; |
| 335 | row[6] = tuple.Height; | 335 | row[6] = symbol.Height; |
| 336 | row[7] = attributes; | 336 | row[7] = attributes; |
| 337 | row[8] = text; | 337 | row[8] = text; |
| 338 | row[9] = tuple.NextControlRef; | 338 | row[9] = symbol.NextControlRef; |
| 339 | row[10] = tuple.Help; | 339 | row[10] = symbol.Help; |
| 340 | } | 340 | } |
| 341 | 341 | ||
| 342 | private void AddComponentTuple(ComponentTuple tuple) | 342 | private void AddComponentSymbol(ComponentSymbol symbol) |
| 343 | { | 343 | { |
| 344 | var attributes = ComponentLocation.Either == tuple.Location ? WindowsInstallerConstants.MsidbComponentAttributesOptional : 0; | 344 | var attributes = ComponentLocation.Either == symbol.Location ? WindowsInstallerConstants.MsidbComponentAttributesOptional : 0; |
| 345 | attributes |= ComponentLocation.SourceOnly == tuple.Location ? WindowsInstallerConstants.MsidbComponentAttributesSourceOnly : 0; | 345 | attributes |= ComponentLocation.SourceOnly == symbol.Location ? WindowsInstallerConstants.MsidbComponentAttributesSourceOnly : 0; |
| 346 | attributes |= ComponentKeyPathType.Registry == tuple.KeyPathType ? WindowsInstallerConstants.MsidbComponentAttributesRegistryKeyPath : 0; | 346 | attributes |= ComponentKeyPathType.Registry == symbol.KeyPathType ? WindowsInstallerConstants.MsidbComponentAttributesRegistryKeyPath : 0; |
| 347 | attributes |= ComponentKeyPathType.OdbcDataSource == tuple.KeyPathType ? WindowsInstallerConstants.MsidbComponentAttributesODBCDataSource : 0; | 347 | attributes |= ComponentKeyPathType.OdbcDataSource == symbol.KeyPathType ? WindowsInstallerConstants.MsidbComponentAttributesODBCDataSource : 0; |
| 348 | attributes |= tuple.DisableRegistryReflection ? WindowsInstallerConstants.MsidbComponentAttributesDisableRegistryReflection : 0; | 348 | attributes |= symbol.DisableRegistryReflection ? WindowsInstallerConstants.MsidbComponentAttributesDisableRegistryReflection : 0; |
| 349 | attributes |= tuple.NeverOverwrite ? WindowsInstallerConstants.MsidbComponentAttributesNeverOverwrite : 0; | 349 | attributes |= symbol.NeverOverwrite ? WindowsInstallerConstants.MsidbComponentAttributesNeverOverwrite : 0; |
| 350 | attributes |= tuple.Permanent ? WindowsInstallerConstants.MsidbComponentAttributesPermanent : 0; | 350 | attributes |= symbol.Permanent ? WindowsInstallerConstants.MsidbComponentAttributesPermanent : 0; |
| 351 | attributes |= tuple.SharedDllRefCount ? WindowsInstallerConstants.MsidbComponentAttributesSharedDllRefCount : 0; | 351 | attributes |= symbol.SharedDllRefCount ? WindowsInstallerConstants.MsidbComponentAttributesSharedDllRefCount : 0; |
| 352 | attributes |= tuple.Shared ? WindowsInstallerConstants.MsidbComponentAttributesShared : 0; | 352 | attributes |= symbol.Shared ? WindowsInstallerConstants.MsidbComponentAttributesShared : 0; |
| 353 | attributes |= tuple.Transitive ? WindowsInstallerConstants.MsidbComponentAttributesTransitive : 0; | 353 | attributes |= symbol.Transitive ? WindowsInstallerConstants.MsidbComponentAttributesTransitive : 0; |
| 354 | attributes |= tuple.UninstallWhenSuperseded ? WindowsInstallerConstants.MsidbComponentAttributesUninstallOnSupersedence : 0; | 354 | attributes |= symbol.UninstallWhenSuperseded ? WindowsInstallerConstants.MsidbComponentAttributesUninstallOnSupersedence : 0; |
| 355 | attributes |= tuple.Win64 ? WindowsInstallerConstants.MsidbComponentAttributes64bit : 0; | 355 | attributes |= symbol.Win64 ? WindowsInstallerConstants.MsidbComponentAttributes64bit : 0; |
| 356 | 356 | ||
| 357 | var row = this.CreateRow(tuple, "Component"); | 357 | var row = this.CreateRow(symbol, "Component"); |
| 358 | row[0] = tuple.Id.Id; | 358 | row[0] = symbol.Id.Id; |
| 359 | row[1] = tuple.ComponentId; | 359 | row[1] = symbol.ComponentId; |
| 360 | row[2] = tuple.DirectoryRef; | 360 | row[2] = symbol.DirectoryRef; |
| 361 | row[3] = attributes; | 361 | row[3] = attributes; |
| 362 | row[4] = tuple.Condition; | 362 | row[4] = symbol.Condition; |
| 363 | row[5] = tuple.KeyPath; | 363 | row[5] = symbol.KeyPath; |
| 364 | } | 364 | } |
| 365 | 365 | ||
| 366 | private void AddCustomActionTuple(CustomActionTuple tuple) | 366 | private void AddCustomActionSymbol(CustomActionSymbol symbol) |
| 367 | { | 367 | { |
| 368 | var type = tuple.Win64 ? WindowsInstallerConstants.MsidbCustomActionType64BitScript : 0; | 368 | var type = symbol.Win64 ? WindowsInstallerConstants.MsidbCustomActionType64BitScript : 0; |
| 369 | type |= tuple.IgnoreResult ? WindowsInstallerConstants.MsidbCustomActionTypeContinue : 0; | 369 | type |= symbol.IgnoreResult ? WindowsInstallerConstants.MsidbCustomActionTypeContinue : 0; |
| 370 | type |= tuple.Hidden ? WindowsInstallerConstants.MsidbCustomActionTypeHideTarget : 0; | 370 | type |= symbol.Hidden ? WindowsInstallerConstants.MsidbCustomActionTypeHideTarget : 0; |
| 371 | type |= tuple.Async ? WindowsInstallerConstants.MsidbCustomActionTypeAsync : 0; | 371 | type |= symbol.Async ? WindowsInstallerConstants.MsidbCustomActionTypeAsync : 0; |
| 372 | type |= CustomActionExecutionType.FirstSequence == tuple.ExecutionType ? WindowsInstallerConstants.MsidbCustomActionTypeFirstSequence : 0; | 372 | type |= CustomActionExecutionType.FirstSequence == symbol.ExecutionType ? WindowsInstallerConstants.MsidbCustomActionTypeFirstSequence : 0; |
| 373 | type |= CustomActionExecutionType.OncePerProcess == tuple.ExecutionType ? WindowsInstallerConstants.MsidbCustomActionTypeOncePerProcess : 0; | 373 | type |= CustomActionExecutionType.OncePerProcess == symbol.ExecutionType ? WindowsInstallerConstants.MsidbCustomActionTypeOncePerProcess : 0; |
| 374 | type |= CustomActionExecutionType.ClientRepeat == tuple.ExecutionType ? WindowsInstallerConstants.MsidbCustomActionTypeClientRepeat : 0; | 374 | type |= CustomActionExecutionType.ClientRepeat == symbol.ExecutionType ? WindowsInstallerConstants.MsidbCustomActionTypeClientRepeat : 0; |
| 375 | type |= CustomActionExecutionType.Deferred == tuple.ExecutionType ? WindowsInstallerConstants.MsidbCustomActionTypeInScript : 0; | 375 | type |= CustomActionExecutionType.Deferred == symbol.ExecutionType ? WindowsInstallerConstants.MsidbCustomActionTypeInScript : 0; |
| 376 | type |= CustomActionExecutionType.Rollback == tuple.ExecutionType ? WindowsInstallerConstants.MsidbCustomActionTypeInScript | WindowsInstallerConstants.MsidbCustomActionTypeRollback : 0; | 376 | type |= CustomActionExecutionType.Rollback == symbol.ExecutionType ? WindowsInstallerConstants.MsidbCustomActionTypeInScript | WindowsInstallerConstants.MsidbCustomActionTypeRollback : 0; |
| 377 | type |= CustomActionExecutionType.Commit == tuple.ExecutionType ? WindowsInstallerConstants.MsidbCustomActionTypeInScript | WindowsInstallerConstants.MsidbCustomActionTypeCommit : 0; | 377 | type |= CustomActionExecutionType.Commit == symbol.ExecutionType ? WindowsInstallerConstants.MsidbCustomActionTypeInScript | WindowsInstallerConstants.MsidbCustomActionTypeCommit : 0; |
| 378 | type |= CustomActionSourceType.File == tuple.SourceType ? WindowsInstallerConstants.MsidbCustomActionTypeSourceFile : 0; | 378 | type |= CustomActionSourceType.File == symbol.SourceType ? WindowsInstallerConstants.MsidbCustomActionTypeSourceFile : 0; |
| 379 | type |= CustomActionSourceType.Directory == tuple.SourceType ? WindowsInstallerConstants.MsidbCustomActionTypeDirectory : 0; | 379 | type |= CustomActionSourceType.Directory == symbol.SourceType ? WindowsInstallerConstants.MsidbCustomActionTypeDirectory : 0; |
| 380 | type |= CustomActionSourceType.Property == tuple.SourceType ? WindowsInstallerConstants.MsidbCustomActionTypeProperty : 0; | 380 | type |= CustomActionSourceType.Property == symbol.SourceType ? WindowsInstallerConstants.MsidbCustomActionTypeProperty : 0; |
| 381 | type |= CustomActionTargetType.Dll == tuple.TargetType ? WindowsInstallerConstants.MsidbCustomActionTypeDll : 0; | 381 | type |= CustomActionTargetType.Dll == symbol.TargetType ? WindowsInstallerConstants.MsidbCustomActionTypeDll : 0; |
| 382 | type |= CustomActionTargetType.Exe == tuple.TargetType ? WindowsInstallerConstants.MsidbCustomActionTypeExe : 0; | 382 | type |= CustomActionTargetType.Exe == symbol.TargetType ? WindowsInstallerConstants.MsidbCustomActionTypeExe : 0; |
| 383 | type |= CustomActionTargetType.TextData == tuple.TargetType ? WindowsInstallerConstants.MsidbCustomActionTypeTextData : 0; | 383 | type |= CustomActionTargetType.TextData == symbol.TargetType ? WindowsInstallerConstants.MsidbCustomActionTypeTextData : 0; |
| 384 | type |= CustomActionTargetType.JScript == tuple.TargetType ? WindowsInstallerConstants.MsidbCustomActionTypeJScript : 0; | 384 | type |= CustomActionTargetType.JScript == symbol.TargetType ? WindowsInstallerConstants.MsidbCustomActionTypeJScript : 0; |
| 385 | type |= CustomActionTargetType.VBScript == tuple.TargetType ? WindowsInstallerConstants.MsidbCustomActionTypeVBScript : 0; | 385 | type |= CustomActionTargetType.VBScript == symbol.TargetType ? WindowsInstallerConstants.MsidbCustomActionTypeVBScript : 0; |
| 386 | 386 | ||
| 387 | if (WindowsInstallerConstants.MsidbCustomActionTypeInScript == (type & WindowsInstallerConstants.MsidbCustomActionTypeInScript)) | 387 | if (WindowsInstallerConstants.MsidbCustomActionTypeInScript == (type & WindowsInstallerConstants.MsidbCustomActionTypeInScript)) |
| 388 | { | 388 | { |
| 389 | type |= tuple.Impersonate ? 0 : WindowsInstallerConstants.MsidbCustomActionTypeNoImpersonate; | 389 | type |= symbol.Impersonate ? 0 : WindowsInstallerConstants.MsidbCustomActionTypeNoImpersonate; |
| 390 | type |= tuple.TSAware ? WindowsInstallerConstants.MsidbCustomActionTypeTSAware : 0; | 390 | type |= symbol.TSAware ? WindowsInstallerConstants.MsidbCustomActionTypeTSAware : 0; |
| 391 | } | 391 | } |
| 392 | 392 | ||
| 393 | var row = this.CreateRow(tuple, "CustomAction"); | 393 | var row = this.CreateRow(symbol, "CustomAction"); |
| 394 | row[0] = tuple.Id.Id; | 394 | row[0] = symbol.Id.Id; |
| 395 | row[1] = type; | 395 | row[1] = type; |
| 396 | row[2] = tuple.Source; | 396 | row[2] = symbol.Source; |
| 397 | row[3] = tuple.Target; | 397 | row[3] = symbol.Target; |
| 398 | row[4] = tuple.PatchUninstall ? (int?)WindowsInstallerConstants.MsidbCustomActionTypePatchUninstall : null; | 398 | row[4] = symbol.PatchUninstall ? (int?)WindowsInstallerConstants.MsidbCustomActionTypePatchUninstall : null; |
| 399 | } | 399 | } |
| 400 | 400 | ||
| 401 | private void AddDialogTuple(DialogTuple tuple) | 401 | private void AddDialogSymbol(DialogSymbol symbol) |
| 402 | { | 402 | { |
| 403 | var attributes = tuple.Visible ? WindowsInstallerConstants.MsidbDialogAttributesVisible : 0; | 403 | var attributes = symbol.Visible ? WindowsInstallerConstants.MsidbDialogAttributesVisible : 0; |
| 404 | attributes |= tuple.Modal ? WindowsInstallerConstants.MsidbDialogAttributesModal : 0; | 404 | attributes |= symbol.Modal ? WindowsInstallerConstants.MsidbDialogAttributesModal : 0; |
| 405 | attributes |= tuple.Minimize ? WindowsInstallerConstants.MsidbDialogAttributesMinimize : 0; | 405 | attributes |= symbol.Minimize ? WindowsInstallerConstants.MsidbDialogAttributesMinimize : 0; |
| 406 | attributes |= tuple.CustomPalette ? WindowsInstallerConstants.MsidbDialogAttributesUseCustomPalette : 0; | 406 | attributes |= symbol.CustomPalette ? WindowsInstallerConstants.MsidbDialogAttributesUseCustomPalette : 0; |
| 407 | attributes |= tuple.ErrorDialog ? WindowsInstallerConstants.MsidbDialogAttributesError : 0; | 407 | attributes |= symbol.ErrorDialog ? WindowsInstallerConstants.MsidbDialogAttributesError : 0; |
| 408 | attributes |= tuple.LeftScroll ? WindowsInstallerConstants.MsidbDialogAttributesLeftScroll : 0; | 408 | attributes |= symbol.LeftScroll ? WindowsInstallerConstants.MsidbDialogAttributesLeftScroll : 0; |
| 409 | attributes |= tuple.KeepModeless ? WindowsInstallerConstants.MsidbDialogAttributesKeepModeless : 0; | 409 | attributes |= symbol.KeepModeless ? WindowsInstallerConstants.MsidbDialogAttributesKeepModeless : 0; |
| 410 | attributes |= tuple.RightAligned ? WindowsInstallerConstants.MsidbDialogAttributesRightAligned : 0; | 410 | attributes |= symbol.RightAligned ? WindowsInstallerConstants.MsidbDialogAttributesRightAligned : 0; |
| 411 | attributes |= tuple.RightToLeft ? WindowsInstallerConstants.MsidbDialogAttributesRTLRO : 0; | 411 | attributes |= symbol.RightToLeft ? WindowsInstallerConstants.MsidbDialogAttributesRTLRO : 0; |
| 412 | attributes |= tuple.SystemModal ? WindowsInstallerConstants.MsidbDialogAttributesSysModal : 0; | 412 | attributes |= symbol.SystemModal ? WindowsInstallerConstants.MsidbDialogAttributesSysModal : 0; |
| 413 | attributes |= tuple.TrackDiskSpace ? WindowsInstallerConstants.MsidbDialogAttributesTrackDiskSpace : 0; | 413 | attributes |= symbol.TrackDiskSpace ? WindowsInstallerConstants.MsidbDialogAttributesTrackDiskSpace : 0; |
| 414 | 414 | ||
| 415 | var row = this.CreateRow(tuple, "Dialog"); | 415 | var row = this.CreateRow(symbol, "Dialog"); |
| 416 | row[0] = tuple.Id.Id; | 416 | row[0] = symbol.Id.Id; |
| 417 | row[1] = tuple.HCentering; | 417 | row[1] = symbol.HCentering; |
| 418 | row[2] = tuple.VCentering; | 418 | row[2] = symbol.VCentering; |
| 419 | row[3] = tuple.Width; | 419 | row[3] = symbol.Width; |
| 420 | row[4] = tuple.Height; | 420 | row[4] = symbol.Height; |
| 421 | row[5] = attributes; | 421 | row[5] = attributes; |
| 422 | row[6] = tuple.Title; | 422 | row[6] = symbol.Title; |
| 423 | row[7] = tuple.FirstControlRef; | 423 | row[7] = symbol.FirstControlRef; |
| 424 | row[8] = tuple.DefaultControlRef; | 424 | row[8] = symbol.DefaultControlRef; |
| 425 | row[9] = tuple.CancelControlRef; | 425 | row[9] = symbol.CancelControlRef; |
| 426 | 426 | ||
| 427 | this.Output.EnsureTable(this.TableDefinitions["ListBox"]); | 427 | this.Output.EnsureTable(this.TableDefinitions["ListBox"]); |
| 428 | } | 428 | } |
| 429 | 429 | ||
| 430 | private void AddDirectoryTuple(DirectoryTuple tuple) | 430 | private void AddDirectorySymbol(DirectorySymbol symbol) |
| 431 | { | 431 | { |
| 432 | var sourceName = GetMsiFilenameValue(tuple.SourceShortName, tuple.SourceName); | 432 | var sourceName = GetMsiFilenameValue(symbol.SourceShortName, symbol.SourceName); |
| 433 | var targetName = GetMsiFilenameValue(tuple.ShortName, tuple.Name); | 433 | var targetName = GetMsiFilenameValue(symbol.ShortName, symbol.Name); |
| 434 | 434 | ||
| 435 | if (String.IsNullOrEmpty(targetName)) | 435 | if (String.IsNullOrEmpty(targetName)) |
| 436 | { | 436 | { |
| @@ -439,20 +439,20 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 439 | 439 | ||
| 440 | var defaultDir = String.IsNullOrEmpty(sourceName) ? targetName : targetName + ":" + sourceName; | 440 | var defaultDir = String.IsNullOrEmpty(sourceName) ? targetName : targetName + ":" + sourceName; |
| 441 | 441 | ||
| 442 | var row = this.CreateRow(tuple, "Directory"); | 442 | var row = this.CreateRow(symbol, "Directory"); |
| 443 | row[0] = tuple.Id.Id; | 443 | row[0] = symbol.Id.Id; |
| 444 | row[1] = tuple.ParentDirectoryRef; | 444 | row[1] = symbol.ParentDirectoryRef; |
| 445 | row[2] = defaultDir; | 445 | row[2] = defaultDir; |
| 446 | } | 446 | } |
| 447 | 447 | ||
| 448 | private void AddEnvironmentTuple(EnvironmentTuple tuple) | 448 | private void AddEnvironmentSymbol(EnvironmentSymbol symbol) |
| 449 | { | 449 | { |
| 450 | var action = String.Empty; | 450 | var action = String.Empty; |
| 451 | var system = tuple.System ? "*" : String.Empty; | 451 | var system = symbol.System ? "*" : String.Empty; |
| 452 | var uninstall = tuple.Permanent ? String.Empty : "-"; | 452 | var uninstall = symbol.Permanent ? String.Empty : "-"; |
| 453 | var value = tuple.Value; | 453 | var value = symbol.Value; |
| 454 | 454 | ||
| 455 | switch (tuple.Action) | 455 | switch (symbol.Action) |
| 456 | { | 456 | { |
| 457 | case EnvironmentActionType.Create: | 457 | case EnvironmentActionType.Create: |
| 458 | action = "+"; | 458 | action = "+"; |
| @@ -465,219 +465,219 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 465 | break; | 465 | break; |
| 466 | } | 466 | } |
| 467 | 467 | ||
| 468 | switch (tuple.Part) | 468 | switch (symbol.Part) |
| 469 | { | 469 | { |
| 470 | case EnvironmentPartType.First: | 470 | case EnvironmentPartType.First: |
| 471 | value = String.Concat(value, tuple.Separator, "[~]"); | 471 | value = String.Concat(value, symbol.Separator, "[~]"); |
| 472 | break; | 472 | break; |
| 473 | case EnvironmentPartType.Last: | 473 | case EnvironmentPartType.Last: |
| 474 | value = String.Concat("[~]", tuple.Separator, value); | 474 | value = String.Concat("[~]", symbol.Separator, value); |
| 475 | break; | 475 | break; |
| 476 | } | 476 | } |
| 477 | 477 | ||
| 478 | var row = this.CreateRow(tuple, "Environment"); | 478 | var row = this.CreateRow(symbol, "Environment"); |
| 479 | row[0] = tuple.Id.Id; | 479 | row[0] = symbol.Id.Id; |
| 480 | row[1] = String.Concat(action, uninstall, system, tuple.Name); | 480 | row[1] = String.Concat(action, uninstall, system, symbol.Name); |
| 481 | row[2] = value; | 481 | row[2] = value; |
| 482 | row[3] = tuple.ComponentRef; | 482 | row[3] = symbol.ComponentRef; |
| 483 | } | 483 | } |
| 484 | 484 | ||
| 485 | private void AddErrorTuple(ErrorTuple tuple) | 485 | private void AddErrorSymbol(ErrorSymbol symbol) |
| 486 | { | 486 | { |
| 487 | var row = this.CreateRow(tuple, "Error"); | 487 | var row = this.CreateRow(symbol, "Error"); |
| 488 | row[0] = Convert.ToInt32(tuple.Id.Id); | 488 | row[0] = Convert.ToInt32(symbol.Id.Id); |
| 489 | row[1] = tuple.Message; | 489 | row[1] = symbol.Message; |
| 490 | } | 490 | } |
| 491 | 491 | ||
| 492 | private void AddFeatureTuple(FeatureTuple tuple) | 492 | private void AddFeatureSymbol(FeatureSymbol symbol) |
| 493 | { | 493 | { |
| 494 | var attributes = tuple.DisallowAbsent ? WindowsInstallerConstants.MsidbFeatureAttributesUIDisallowAbsent : 0; | 494 | var attributes = symbol.DisallowAbsent ? WindowsInstallerConstants.MsidbFeatureAttributesUIDisallowAbsent : 0; |
| 495 | attributes |= tuple.DisallowAdvertise ? WindowsInstallerConstants.MsidbFeatureAttributesDisallowAdvertise : 0; | 495 | attributes |= symbol.DisallowAdvertise ? WindowsInstallerConstants.MsidbFeatureAttributesDisallowAdvertise : 0; |
| 496 | attributes |= FeatureInstallDefault.FollowParent == tuple.InstallDefault ? WindowsInstallerConstants.MsidbFeatureAttributesFollowParent : 0; | 496 | attributes |= FeatureInstallDefault.FollowParent == symbol.InstallDefault ? WindowsInstallerConstants.MsidbFeatureAttributesFollowParent : 0; |
| 497 | attributes |= FeatureInstallDefault.Source == tuple.InstallDefault ? WindowsInstallerConstants.MsidbFeatureAttributesFavorSource : 0; | 497 | attributes |= FeatureInstallDefault.Source == symbol.InstallDefault ? WindowsInstallerConstants.MsidbFeatureAttributesFavorSource : 0; |
| 498 | attributes |= FeatureTypicalDefault.Advertise == tuple.TypicalDefault ? WindowsInstallerConstants.MsidbFeatureAttributesFavorAdvertise : 0; | 498 | attributes |= FeatureTypicalDefault.Advertise == symbol.TypicalDefault ? WindowsInstallerConstants.MsidbFeatureAttributesFavorAdvertise : 0; |
| 499 | 499 | ||
| 500 | var row = this.CreateRow(tuple, "Feature"); | 500 | var row = this.CreateRow(symbol, "Feature"); |
| 501 | row[0] = tuple.Id.Id; | 501 | row[0] = symbol.Id.Id; |
| 502 | row[1] = tuple.ParentFeatureRef; | 502 | row[1] = symbol.ParentFeatureRef; |
| 503 | row[2] = tuple.Title; | 503 | row[2] = symbol.Title; |
| 504 | row[3] = tuple.Description; | 504 | row[3] = symbol.Description; |
| 505 | row[4] = tuple.Display; | 505 | row[4] = symbol.Display; |
| 506 | row[5] = tuple.Level; | 506 | row[5] = symbol.Level; |
| 507 | row[6] = tuple.DirectoryRef; | 507 | row[6] = symbol.DirectoryRef; |
| 508 | row[7] = attributes; | 508 | row[7] = attributes; |
| 509 | } | 509 | } |
| 510 | 510 | ||
| 511 | private void AddFileTuple(FileTuple tuple) | 511 | private void AddFileSymbol(FileSymbol symbol) |
| 512 | { | 512 | { |
| 513 | var row = (FileRow)this.CreateRow(tuple, "File"); | 513 | var row = (FileRow)this.CreateRow(symbol, "File"); |
| 514 | row.File = tuple.Id.Id; | 514 | row.File = symbol.Id.Id; |
| 515 | row.Component = tuple.ComponentRef; | 515 | row.Component = symbol.ComponentRef; |
| 516 | row.FileName = GetMsiFilenameValue(tuple.ShortName, tuple.Name); | 516 | row.FileName = GetMsiFilenameValue(symbol.ShortName, symbol.Name); |
| 517 | row.FileSize = tuple.FileSize; | 517 | row.FileSize = symbol.FileSize; |
| 518 | row.Version = tuple.Version; | 518 | row.Version = symbol.Version; |
| 519 | row.Language = tuple.Language; | 519 | row.Language = symbol.Language; |
| 520 | row.DiskId = tuple.DiskId ?? 1; // TODO: is 1 the correct thing to default here | 520 | row.DiskId = symbol.DiskId ?? 1; // TODO: is 1 the correct thing to default here |
| 521 | row.Sequence = tuple.Sequence; | 521 | row.Sequence = symbol.Sequence; |
| 522 | row.Source = tuple.Source.Path; | 522 | row.Source = symbol.Source.Path; |
| 523 | 523 | ||
| 524 | var attributes = (tuple.Attributes & FileTupleAttributes.Checksum) == FileTupleAttributes.Checksum ? WindowsInstallerConstants.MsidbFileAttributesChecksum : 0; | 524 | var attributes = (symbol.Attributes & FileSymbolAttributes.Checksum) == FileSymbolAttributes.Checksum ? WindowsInstallerConstants.MsidbFileAttributesChecksum : 0; |
| 525 | attributes |= (tuple.Attributes & FileTupleAttributes.Compressed) == FileTupleAttributes.Compressed ? WindowsInstallerConstants.MsidbFileAttributesCompressed : 0; | 525 | attributes |= (symbol.Attributes & FileSymbolAttributes.Compressed) == FileSymbolAttributes.Compressed ? WindowsInstallerConstants.MsidbFileAttributesCompressed : 0; |
| 526 | attributes |= (tuple.Attributes & FileTupleAttributes.Uncompressed) == FileTupleAttributes.Uncompressed ? WindowsInstallerConstants.MsidbFileAttributesNoncompressed : 0; | 526 | attributes |= (symbol.Attributes & FileSymbolAttributes.Uncompressed) == FileSymbolAttributes.Uncompressed ? WindowsInstallerConstants.MsidbFileAttributesNoncompressed : 0; |
| 527 | attributes |= (tuple.Attributes & FileTupleAttributes.Hidden) == FileTupleAttributes.Hidden ? WindowsInstallerConstants.MsidbFileAttributesHidden : 0; | 527 | attributes |= (symbol.Attributes & FileSymbolAttributes.Hidden) == FileSymbolAttributes.Hidden ? WindowsInstallerConstants.MsidbFileAttributesHidden : 0; |
| 528 | attributes |= (tuple.Attributes & FileTupleAttributes.ReadOnly) == FileTupleAttributes.ReadOnly ? WindowsInstallerConstants.MsidbFileAttributesReadOnly : 0; | 528 | attributes |= (symbol.Attributes & FileSymbolAttributes.ReadOnly) == FileSymbolAttributes.ReadOnly ? WindowsInstallerConstants.MsidbFileAttributesReadOnly : 0; |
| 529 | attributes |= (tuple.Attributes & FileTupleAttributes.System) == FileTupleAttributes.System ? WindowsInstallerConstants.MsidbFileAttributesSystem : 0; | 529 | attributes |= (symbol.Attributes & FileSymbolAttributes.System) == FileSymbolAttributes.System ? WindowsInstallerConstants.MsidbFileAttributesSystem : 0; |
| 530 | attributes |= (tuple.Attributes & FileTupleAttributes.Vital) == FileTupleAttributes.Vital ? WindowsInstallerConstants.MsidbFileAttributesVital : 0; | 530 | attributes |= (symbol.Attributes & FileSymbolAttributes.Vital) == FileSymbolAttributes.Vital ? WindowsInstallerConstants.MsidbFileAttributesVital : 0; |
| 531 | row.Attributes = attributes; | 531 | row.Attributes = attributes; |
| 532 | 532 | ||
| 533 | if (tuple.FontTitle != null) | 533 | if (symbol.FontTitle != null) |
| 534 | { | 534 | { |
| 535 | var fontRow = this.CreateRow(tuple, "Font"); | 535 | var fontRow = this.CreateRow(symbol, "Font"); |
| 536 | fontRow[0] = tuple.Id.Id; | 536 | fontRow[0] = symbol.Id.Id; |
| 537 | fontRow[1] = tuple.FontTitle; | 537 | fontRow[1] = symbol.FontTitle; |
| 538 | } | 538 | } |
| 539 | 539 | ||
| 540 | if (tuple.SelfRegCost.HasValue) | 540 | if (symbol.SelfRegCost.HasValue) |
| 541 | { | 541 | { |
| 542 | var selfRegRow = this.CreateRow(tuple, "SelfReg"); | 542 | var selfRegRow = this.CreateRow(symbol, "SelfReg"); |
| 543 | selfRegRow[0] = tuple.Id.Id; | 543 | selfRegRow[0] = symbol.Id.Id; |
| 544 | selfRegRow[1] = tuple.SelfRegCost.Value; | 544 | selfRegRow[1] = symbol.SelfRegCost.Value; |
| 545 | } | 545 | } |
| 546 | } | 546 | } |
| 547 | 547 | ||
| 548 | private void AddIniFileTuple(IniFileTuple tuple) | 548 | private void AddIniFileSymbol(IniFileSymbol symbol) |
| 549 | { | 549 | { |
| 550 | var tableName = (InifFileActionType.AddLine == tuple.Action || InifFileActionType.AddTag == tuple.Action || InifFileActionType.CreateLine == tuple.Action) ? "IniFile" : "RemoveIniFile"; | 550 | var tableName = (InifFileActionType.AddLine == symbol.Action || InifFileActionType.AddTag == symbol.Action || InifFileActionType.CreateLine == symbol.Action) ? "IniFile" : "RemoveIniFile"; |
| 551 | 551 | ||
| 552 | var row = this.CreateRow(tuple, tableName); | 552 | var row = this.CreateRow(symbol, tableName); |
| 553 | row[0] = tuple.Id.Id; | 553 | row[0] = symbol.Id.Id; |
| 554 | row[1] = tuple.FileName; | 554 | row[1] = symbol.FileName; |
| 555 | row[2] = tuple.DirProperty; | 555 | row[2] = symbol.DirProperty; |
| 556 | row[3] = tuple.Section; | 556 | row[3] = symbol.Section; |
| 557 | row[4] = tuple.Key; | 557 | row[4] = symbol.Key; |
| 558 | row[5] = tuple.Value; | 558 | row[5] = symbol.Value; |
| 559 | row[6] = tuple.Action; | 559 | row[6] = symbol.Action; |
| 560 | row[7] = tuple.ComponentRef; | 560 | row[7] = symbol.ComponentRef; |
| 561 | } | 561 | } |
| 562 | 562 | ||
| 563 | private void AddMediaTuple(MediaTuple tuple) | 563 | private void AddMediaSymbol(MediaSymbol symbol) |
| 564 | { | 564 | { |
| 565 | if (this.Section.Type != SectionType.Module) | 565 | if (this.Section.Type != SectionType.Module) |
| 566 | { | 566 | { |
| 567 | var row = (MediaRow)this.CreateRow(tuple, "Media"); | 567 | var row = (MediaRow)this.CreateRow(symbol, "Media"); |
| 568 | row.DiskId = tuple.DiskId; | 568 | row.DiskId = symbol.DiskId; |
| 569 | row.LastSequence = tuple.LastSequence ?? 0; | 569 | row.LastSequence = symbol.LastSequence ?? 0; |
| 570 | row.DiskPrompt = tuple.DiskPrompt; | 570 | row.DiskPrompt = symbol.DiskPrompt; |
| 571 | row.Cabinet = tuple.Cabinet; | 571 | row.Cabinet = symbol.Cabinet; |
| 572 | row.VolumeLabel = tuple.VolumeLabel; | 572 | row.VolumeLabel = symbol.VolumeLabel; |
| 573 | row.Source = tuple.Source; | 573 | row.Source = symbol.Source; |
| 574 | } | 574 | } |
| 575 | } | 575 | } |
| 576 | 576 | ||
| 577 | private void AddModuleConfigurationTuple(ModuleConfigurationTuple tuple) | 577 | private void AddModuleConfigurationSymbol(ModuleConfigurationSymbol symbol) |
| 578 | { | 578 | { |
| 579 | var row = this.CreateRow(tuple, "ModuleConfiguration"); | 579 | var row = this.CreateRow(symbol, "ModuleConfiguration"); |
| 580 | row[0] = tuple.Id.Id; | 580 | row[0] = symbol.Id.Id; |
| 581 | row[1] = tuple.Format; | 581 | row[1] = symbol.Format; |
| 582 | row[2] = tuple.Type; | 582 | row[2] = symbol.Type; |
| 583 | row[3] = tuple.ContextData; | 583 | row[3] = symbol.ContextData; |
| 584 | row[4] = tuple.DefaultValue; | 584 | row[4] = symbol.DefaultValue; |
| 585 | row[5] = (tuple.KeyNoOrphan ? WindowsInstallerConstants.MsidbMsmConfigurableOptionKeyNoOrphan : 0) | | 585 | row[5] = (symbol.KeyNoOrphan ? WindowsInstallerConstants.MsidbMsmConfigurableOptionKeyNoOrphan : 0) | |
| 586 | (tuple.NonNullable ? WindowsInstallerConstants.MsidbMsmConfigurableOptionNonNullable : 0); | 586 | (symbol.NonNullable ? WindowsInstallerConstants.MsidbMsmConfigurableOptionNonNullable : 0); |
| 587 | row[6] = tuple.DisplayName; | 587 | row[6] = symbol.DisplayName; |
| 588 | row[7] = tuple.Description; | 588 | row[7] = symbol.Description; |
| 589 | row[8] = tuple.HelpLocation; | 589 | row[8] = symbol.HelpLocation; |
| 590 | row[9] = tuple.HelpKeyword; | 590 | row[9] = symbol.HelpKeyword; |
| 591 | } | 591 | } |
| 592 | 592 | ||
| 593 | private void AddMsiEmbeddedUITuple(MsiEmbeddedUITuple tuple) | 593 | private void AddMsiEmbeddedUISymbol(MsiEmbeddedUISymbol symbol) |
| 594 | { | 594 | { |
| 595 | var attributes = tuple.EntryPoint ? WindowsInstallerConstants.MsidbEmbeddedUI : 0; | 595 | var attributes = symbol.EntryPoint ? WindowsInstallerConstants.MsidbEmbeddedUI : 0; |
| 596 | attributes |= tuple.SupportsBasicUI ? WindowsInstallerConstants.MsidbEmbeddedHandlesBasic : 0; | 596 | attributes |= symbol.SupportsBasicUI ? WindowsInstallerConstants.MsidbEmbeddedHandlesBasic : 0; |
| 597 | 597 | ||
| 598 | var row = this.CreateRow(tuple, "MsiEmbeddedUI"); | 598 | var row = this.CreateRow(symbol, "MsiEmbeddedUI"); |
| 599 | row[0] = tuple.Id.Id; | 599 | row[0] = symbol.Id.Id; |
| 600 | row[1] = tuple.FileName; | 600 | row[1] = symbol.FileName; |
| 601 | row[2] = attributes; | 601 | row[2] = attributes; |
| 602 | row[3] = tuple.MessageFilter; | 602 | row[3] = symbol.MessageFilter; |
| 603 | row[4] = tuple.Source; | 603 | row[4] = symbol.Source; |
| 604 | } | 604 | } |
| 605 | 605 | ||
| 606 | private void AddMsiServiceConfigTuple(MsiServiceConfigTuple tuple) | 606 | private void AddMsiServiceConfigSymbol(MsiServiceConfigSymbol symbol) |
| 607 | { | 607 | { |
| 608 | var events = tuple.OnInstall ? WindowsInstallerConstants.MsidbServiceConfigEventInstall : 0; | 608 | var events = symbol.OnInstall ? WindowsInstallerConstants.MsidbServiceConfigEventInstall : 0; |
| 609 | events |= tuple.OnReinstall ? WindowsInstallerConstants.MsidbServiceConfigEventReinstall : 0; | 609 | events |= symbol.OnReinstall ? WindowsInstallerConstants.MsidbServiceConfigEventReinstall : 0; |
| 610 | events |= tuple.OnUninstall ? WindowsInstallerConstants.MsidbServiceConfigEventUninstall : 0; | 610 | events |= symbol.OnUninstall ? WindowsInstallerConstants.MsidbServiceConfigEventUninstall : 0; |
| 611 | 611 | ||
| 612 | var row = this.CreateRow(tuple, "MsiServiceConfigFailureActions"); | 612 | var row = this.CreateRow(symbol, "MsiServiceConfigFailureActions"); |
| 613 | row[0] = tuple.Id.Id; | 613 | row[0] = symbol.Id.Id; |
| 614 | row[1] = tuple.Name; | 614 | row[1] = symbol.Name; |
| 615 | row[2] = events; | 615 | row[2] = events; |
| 616 | row[3] = tuple.ConfigType; | 616 | row[3] = symbol.ConfigType; |
| 617 | row[4] = tuple.Argument; | 617 | row[4] = symbol.Argument; |
| 618 | row[5] = tuple.ComponentRef; | 618 | row[5] = symbol.ComponentRef; |
| 619 | } | 619 | } |
| 620 | 620 | ||
| 621 | private void AddMsiServiceConfigFailureActionsTuple(MsiServiceConfigFailureActionsTuple tuple) | 621 | private void AddMsiServiceConfigFailureActionsSymbol(MsiServiceConfigFailureActionsSymbol symbol) |
| 622 | { | 622 | { |
| 623 | var events = tuple.OnInstall ? WindowsInstallerConstants.MsidbServiceConfigEventInstall : 0; | 623 | var events = symbol.OnInstall ? WindowsInstallerConstants.MsidbServiceConfigEventInstall : 0; |
| 624 | events |= tuple.OnReinstall ? WindowsInstallerConstants.MsidbServiceConfigEventReinstall : 0; | 624 | events |= symbol.OnReinstall ? WindowsInstallerConstants.MsidbServiceConfigEventReinstall : 0; |
| 625 | events |= tuple.OnUninstall ? WindowsInstallerConstants.MsidbServiceConfigEventUninstall : 0; | 625 | events |= symbol.OnUninstall ? WindowsInstallerConstants.MsidbServiceConfigEventUninstall : 0; |
| 626 | 626 | ||
| 627 | var row = this.CreateRow(tuple, "MsiServiceConfig"); | 627 | var row = this.CreateRow(symbol, "MsiServiceConfig"); |
| 628 | row[0] = tuple.Id.Id; | 628 | row[0] = symbol.Id.Id; |
| 629 | row[1] = tuple.Name; | 629 | row[1] = symbol.Name; |
| 630 | row[2] = events; | 630 | row[2] = events; |
| 631 | row[3] = tuple.ResetPeriod.HasValue ? tuple.ResetPeriod : null; | 631 | row[3] = symbol.ResetPeriod.HasValue ? symbol.ResetPeriod : null; |
| 632 | row[4] = tuple.RebootMessage ?? "[~]"; | 632 | row[4] = symbol.RebootMessage ?? "[~]"; |
| 633 | row[5] = tuple.Command ?? "[~]"; | 633 | row[5] = symbol.Command ?? "[~]"; |
| 634 | row[6] = tuple.Actions; | 634 | row[6] = symbol.Actions; |
| 635 | row[7] = tuple.DelayActions; | 635 | row[7] = symbol.DelayActions; |
| 636 | row[8] = tuple.ComponentRef; | 636 | row[8] = symbol.ComponentRef; |
| 637 | } | 637 | } |
| 638 | 638 | ||
| 639 | private void AddMoveFileTuple(MoveFileTuple tuple) | 639 | private void AddMoveFileSymbol(MoveFileSymbol symbol) |
| 640 | { | 640 | { |
| 641 | var row = this.CreateRow(tuple, "MoveFile"); | 641 | var row = this.CreateRow(symbol, "MoveFile"); |
| 642 | row[0] = tuple.Id.Id; | 642 | row[0] = symbol.Id.Id; |
| 643 | row[1] = tuple.ComponentRef; | 643 | row[1] = symbol.ComponentRef; |
| 644 | row[2] = tuple.SourceName; | 644 | row[2] = symbol.SourceName; |
| 645 | row[3] = tuple.DestName; | 645 | row[3] = symbol.DestName; |
| 646 | row[4] = tuple.SourceFolder; | 646 | row[4] = symbol.SourceFolder; |
| 647 | row[5] = tuple.DestFolder; | 647 | row[5] = symbol.DestFolder; |
| 648 | row[6] = tuple.Delete ? WindowsInstallerConstants.MsidbMoveFileOptionsMove : 0; | 648 | row[6] = symbol.Delete ? WindowsInstallerConstants.MsidbMoveFileOptionsMove : 0; |
| 649 | } | 649 | } |
| 650 | 650 | ||
| 651 | private void AddPropertyTuple(PropertyTuple tuple) | 651 | private void AddPropertySymbol(PropertySymbol symbol) |
| 652 | { | 652 | { |
| 653 | if (String.IsNullOrEmpty(tuple.Value)) | 653 | if (String.IsNullOrEmpty(symbol.Value)) |
| 654 | { | 654 | { |
| 655 | return; | 655 | return; |
| 656 | } | 656 | } |
| 657 | 657 | ||
| 658 | var row = (PropertyRow)this.CreateRow(tuple, "Property"); | 658 | var row = (PropertyRow)this.CreateRow(symbol, "Property"); |
| 659 | row.Property = tuple.Id.Id; | 659 | row.Property = symbol.Id.Id; |
| 660 | row.Value = tuple.Value; | 660 | row.Value = symbol.Value; |
| 661 | } | 661 | } |
| 662 | 662 | ||
| 663 | private void AddRemoveFileTuple(RemoveFileTuple tuple) | 663 | private void AddRemoveFileSymbol(RemoveFileSymbol symbol) |
| 664 | { | 664 | { |
| 665 | var installMode = tuple.OnInstall == true ? WindowsInstallerConstants.MsidbRemoveFileInstallModeOnInstall : 0; | 665 | var installMode = symbol.OnInstall == true ? WindowsInstallerConstants.MsidbRemoveFileInstallModeOnInstall : 0; |
| 666 | installMode |= tuple.OnUninstall == true ? WindowsInstallerConstants.MsidbRemoveFileInstallModeOnRemove : 0; | 666 | installMode |= symbol.OnUninstall == true ? WindowsInstallerConstants.MsidbRemoveFileInstallModeOnRemove : 0; |
| 667 | 667 | ||
| 668 | var row = this.CreateRow(tuple, "RemoveFile"); | 668 | var row = this.CreateRow(symbol, "RemoveFile"); |
| 669 | row[0] = tuple.Id.Id; | 669 | row[0] = symbol.Id.Id; |
| 670 | row[1] = tuple.ComponentRef; | 670 | row[1] = symbol.ComponentRef; |
| 671 | row[2] = tuple.FileName; | 671 | row[2] = symbol.FileName; |
| 672 | row[3] = tuple.DirProperty; | 672 | row[3] = symbol.DirProperty; |
| 673 | row[4] = installMode; | 673 | row[4] = installMode; |
| 674 | } | 674 | } |
| 675 | 675 | ||
| 676 | private void AddRegistryTuple(RegistryTuple tuple) | 676 | private void AddRegistrySymbol(RegistrySymbol symbol) |
| 677 | { | 677 | { |
| 678 | var value = tuple.Value; | 678 | var value = symbol.Value; |
| 679 | 679 | ||
| 680 | switch (tuple.ValueType) | 680 | switch (symbol.ValueType) |
| 681 | { | 681 | { |
| 682 | case RegistryValueType.Binary: | 682 | case RegistryValueType.Binary: |
| 683 | value = String.Concat("#x", value); | 683 | value = String.Concat("#x", value); |
| @@ -689,7 +689,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 689 | value = String.Concat("#", value); | 689 | value = String.Concat("#", value); |
| 690 | break; | 690 | break; |
| 691 | case RegistryValueType.MultiString: | 691 | case RegistryValueType.MultiString: |
| 692 | switch (tuple.ValueAction) | 692 | switch (symbol.ValueAction) |
| 693 | { | 693 | { |
| 694 | case RegistryValueActionType.Append: | 694 | case RegistryValueActionType.Append: |
| 695 | value = String.Concat("[~]", value); | 695 | value = String.Concat("[~]", value); |
| @@ -715,164 +715,164 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 715 | break; | 715 | break; |
| 716 | } | 716 | } |
| 717 | 717 | ||
| 718 | var row = this.CreateRow(tuple, "Registry"); | 718 | var row = this.CreateRow(symbol, "Registry"); |
| 719 | row[0] = tuple.Id.Id; | 719 | row[0] = symbol.Id.Id; |
| 720 | row[1] = tuple.Root; | 720 | row[1] = symbol.Root; |
| 721 | row[2] = tuple.Key; | 721 | row[2] = symbol.Key; |
| 722 | row[3] = tuple.Name; | 722 | row[3] = symbol.Name; |
| 723 | row[4] = value; | 723 | row[4] = value; |
| 724 | row[5] = tuple.ComponentRef; | 724 | row[5] = symbol.ComponentRef; |
| 725 | } | 725 | } |
| 726 | 726 | ||
| 727 | private void AddRegLocatorTuple(RegLocatorTuple tuple) | 727 | private void AddRegLocatorSymbol(RegLocatorSymbol symbol) |
| 728 | { | 728 | { |
| 729 | var type = (int)tuple.Type; | 729 | var type = (int)symbol.Type; |
| 730 | type |= tuple.Win64 ? WindowsInstallerConstants.MsidbLocatorType64bit : 0; | 730 | type |= symbol.Win64 ? WindowsInstallerConstants.MsidbLocatorType64bit : 0; |
| 731 | 731 | ||
| 732 | var row = this.CreateRow(tuple, "RegLocator"); | 732 | var row = this.CreateRow(symbol, "RegLocator"); |
| 733 | row[0] = tuple.Id.Id; | 733 | row[0] = symbol.Id.Id; |
| 734 | row[1] = tuple.Root; | 734 | row[1] = symbol.Root; |
| 735 | row[2] = tuple.Key; | 735 | row[2] = symbol.Key; |
| 736 | row[3] = tuple.Name; | 736 | row[3] = symbol.Name; |
| 737 | row[4] = type; | 737 | row[4] = type; |
| 738 | } | 738 | } |
| 739 | 739 | ||
| 740 | private void AddRemoveRegistryTuple(RemoveRegistryTuple tuple) | 740 | private void AddRemoveRegistrySymbol(RemoveRegistrySymbol symbol) |
| 741 | { | 741 | { |
| 742 | if (tuple.Action == RemoveRegistryActionType.RemoveOnInstall) | 742 | if (symbol.Action == RemoveRegistryActionType.RemoveOnInstall) |
| 743 | { | 743 | { |
| 744 | var row = this.CreateRow(tuple, "RemoveRegistry"); | 744 | var row = this.CreateRow(symbol, "RemoveRegistry"); |
| 745 | row[0] = tuple.Id.Id; | 745 | row[0] = symbol.Id.Id; |
| 746 | row[1] = tuple.Root; | 746 | row[1] = symbol.Root; |
| 747 | row[2] = tuple.Key; | 747 | row[2] = symbol.Key; |
| 748 | row[3] = tuple.Name; | 748 | row[3] = symbol.Name; |
| 749 | row[4] = tuple.ComponentRef; | 749 | row[4] = symbol.ComponentRef; |
| 750 | } | 750 | } |
| 751 | else // Registry table is used to remove registry keys on uninstall. | 751 | else // Registry table is used to remove registry keys on uninstall. |
| 752 | { | 752 | { |
| 753 | var row = this.CreateRow(tuple, "Registry"); | 753 | var row = this.CreateRow(symbol, "Registry"); |
| 754 | row[0] = tuple.Id.Id; | 754 | row[0] = symbol.Id.Id; |
| 755 | row[1] = tuple.Root; | 755 | row[1] = symbol.Root; |
| 756 | row[2] = tuple.Key; | 756 | row[2] = symbol.Key; |
| 757 | row[3] = tuple.Name; | 757 | row[3] = symbol.Name; |
| 758 | row[5] = tuple.ComponentRef; | 758 | row[5] = symbol.ComponentRef; |
| 759 | } | 759 | } |
| 760 | } | 760 | } |
| 761 | 761 | ||
| 762 | private void AddServiceControlTuple(ServiceControlTuple tuple) | 762 | private void AddServiceControlSymbol(ServiceControlSymbol symbol) |
| 763 | { | 763 | { |
| 764 | var events = tuple.InstallRemove ? WindowsInstallerConstants.MsidbServiceControlEventDelete : 0; | 764 | var events = symbol.InstallRemove ? WindowsInstallerConstants.MsidbServiceControlEventDelete : 0; |
| 765 | events |= tuple.UninstallRemove ? WindowsInstallerConstants.MsidbServiceControlEventUninstallDelete : 0; | 765 | events |= symbol.UninstallRemove ? WindowsInstallerConstants.MsidbServiceControlEventUninstallDelete : 0; |
| 766 | events |= tuple.InstallStart ? WindowsInstallerConstants.MsidbServiceControlEventStart : 0; | 766 | events |= symbol.InstallStart ? WindowsInstallerConstants.MsidbServiceControlEventStart : 0; |
| 767 | events |= tuple.UninstallStart ? WindowsInstallerConstants.MsidbServiceControlEventUninstallStart : 0; | 767 | events |= symbol.UninstallStart ? WindowsInstallerConstants.MsidbServiceControlEventUninstallStart : 0; |
| 768 | events |= tuple.InstallStop ? WindowsInstallerConstants.MsidbServiceControlEventStop : 0; | 768 | events |= symbol.InstallStop ? WindowsInstallerConstants.MsidbServiceControlEventStop : 0; |
| 769 | events |= tuple.UninstallStop ? WindowsInstallerConstants.MsidbServiceControlEventUninstallStop : 0; | 769 | events |= symbol.UninstallStop ? WindowsInstallerConstants.MsidbServiceControlEventUninstallStop : 0; |
| 770 | 770 | ||
| 771 | var row = this.CreateRow(tuple, "ServiceControl"); | 771 | var row = this.CreateRow(symbol, "ServiceControl"); |
| 772 | row[0] = tuple.Id.Id; | 772 | row[0] = symbol.Id.Id; |
| 773 | row[1] = tuple.Name; | 773 | row[1] = symbol.Name; |
| 774 | row[2] = events; | 774 | row[2] = events; |
| 775 | row[3] = tuple.Arguments; | 775 | row[3] = symbol.Arguments; |
| 776 | if (tuple.Wait.HasValue) | 776 | if (symbol.Wait.HasValue) |
| 777 | { | 777 | { |
| 778 | row[4] = tuple.Wait.Value ? 1 : 0; | 778 | row[4] = symbol.Wait.Value ? 1 : 0; |
| 779 | } | 779 | } |
| 780 | row[5] = tuple.ComponentRef; | 780 | row[5] = symbol.ComponentRef; |
| 781 | } | 781 | } |
| 782 | 782 | ||
| 783 | private void AddServiceInstallTuple(ServiceInstallTuple tuple) | 783 | private void AddServiceInstallSymbol(ServiceInstallSymbol symbol) |
| 784 | { | 784 | { |
| 785 | var errorControl = (int)tuple.ErrorControl; | 785 | var errorControl = (int)symbol.ErrorControl; |
| 786 | errorControl |= tuple.Vital ? WindowsInstallerConstants.MsidbServiceInstallErrorControlVital : 0; | 786 | errorControl |= symbol.Vital ? WindowsInstallerConstants.MsidbServiceInstallErrorControlVital : 0; |
| 787 | 787 | ||
| 788 | var serviceType = (int)tuple.ServiceType; | 788 | var serviceType = (int)symbol.ServiceType; |
| 789 | serviceType |= tuple.Interactive ? WindowsInstallerConstants.MsidbServiceInstallInteractive : 0; | 789 | serviceType |= symbol.Interactive ? WindowsInstallerConstants.MsidbServiceInstallInteractive : 0; |
| 790 | 790 | ||
| 791 | var row = this.CreateRow(tuple, "ServiceInstall"); | 791 | var row = this.CreateRow(symbol, "ServiceInstall"); |
| 792 | row[0] = tuple.Id.Id; | 792 | row[0] = symbol.Id.Id; |
| 793 | row[1] = tuple.Name; | 793 | row[1] = symbol.Name; |
| 794 | row[2] = tuple.DisplayName; | 794 | row[2] = symbol.DisplayName; |
| 795 | row[3] = serviceType; | 795 | row[3] = serviceType; |
| 796 | row[4] = (int)tuple.StartType; | 796 | row[4] = (int)symbol.StartType; |
| 797 | row[5] = errorControl; | 797 | row[5] = errorControl; |
| 798 | row[6] = tuple.LoadOrderGroup; | 798 | row[6] = symbol.LoadOrderGroup; |
| 799 | row[7] = tuple.Dependencies; | 799 | row[7] = symbol.Dependencies; |
| 800 | row[8] = tuple.StartName; | 800 | row[8] = symbol.StartName; |
| 801 | row[9] = tuple.Password; | 801 | row[9] = symbol.Password; |
| 802 | row[10] = tuple.Arguments; | 802 | row[10] = symbol.Arguments; |
| 803 | row[11] = tuple.ComponentRef; | 803 | row[11] = symbol.ComponentRef; |
| 804 | row[12] = tuple.Description; | 804 | row[12] = symbol.Description; |
| 805 | } | 805 | } |
| 806 | 806 | ||
| 807 | private void AddShortcutTuple(ShortcutTuple tuple) | 807 | private void AddShortcutSymbol(ShortcutSymbol symbol) |
| 808 | { | 808 | { |
| 809 | var row = this.CreateRow(tuple, "Shortcut"); | 809 | var row = this.CreateRow(symbol, "Shortcut"); |
| 810 | row[0] = tuple.Id.Id; | 810 | row[0] = symbol.Id.Id; |
| 811 | row[1] = tuple.DirectoryRef; | 811 | row[1] = symbol.DirectoryRef; |
| 812 | row[2] = GetMsiFilenameValue(tuple.ShortName, tuple.Name); | 812 | row[2] = GetMsiFilenameValue(symbol.ShortName, symbol.Name); |
| 813 | row[3] = tuple.ComponentRef; | 813 | row[3] = symbol.ComponentRef; |
| 814 | row[4] = tuple.Target; | 814 | row[4] = symbol.Target; |
| 815 | row[5] = tuple.Arguments; | 815 | row[5] = symbol.Arguments; |
| 816 | row[6] = tuple.Description; | 816 | row[6] = symbol.Description; |
| 817 | row[7] = tuple.Hotkey; | 817 | row[7] = symbol.Hotkey; |
| 818 | row[8] = tuple.IconRef; | 818 | row[8] = symbol.IconRef; |
| 819 | row[9] = tuple.IconIndex; | 819 | row[9] = symbol.IconIndex; |
| 820 | row[10] = (int?)tuple.Show; | 820 | row[10] = (int?)symbol.Show; |
| 821 | row[11] = tuple.WorkingDirectory; | 821 | row[11] = symbol.WorkingDirectory; |
| 822 | row[12] = tuple.DisplayResourceDll; | 822 | row[12] = symbol.DisplayResourceDll; |
| 823 | row[13] = tuple.DisplayResourceId; | 823 | row[13] = symbol.DisplayResourceId; |
| 824 | row[14] = tuple.DescriptionResourceDll; | 824 | row[14] = symbol.DescriptionResourceDll; |
| 825 | row[15] = tuple.DescriptionResourceId; | 825 | row[15] = symbol.DescriptionResourceId; |
| 826 | } | 826 | } |
| 827 | 827 | ||
| 828 | private void AddTextStyleTuple(TextStyleTuple tuple) | 828 | private void AddTextStyleSymbol(TextStyleSymbol symbol) |
| 829 | { | 829 | { |
| 830 | var styleBits = tuple.Bold ? WindowsInstallerConstants.MsidbTextStyleStyleBitsBold : 0; | 830 | var styleBits = symbol.Bold ? WindowsInstallerConstants.MsidbTextStyleStyleBitsBold : 0; |
| 831 | styleBits |= tuple.Italic ? WindowsInstallerConstants.MsidbTextStyleStyleBitsItalic : 0; | 831 | styleBits |= symbol.Italic ? WindowsInstallerConstants.MsidbTextStyleStyleBitsItalic : 0; |
| 832 | styleBits |= tuple.Strike ? WindowsInstallerConstants.MsidbTextStyleStyleBitsStrike : 0; | 832 | styleBits |= symbol.Strike ? WindowsInstallerConstants.MsidbTextStyleStyleBitsStrike : 0; |
| 833 | styleBits |= tuple.Underline ? WindowsInstallerConstants.MsidbTextStyleStyleBitsUnderline : 0; | 833 | styleBits |= symbol.Underline ? WindowsInstallerConstants.MsidbTextStyleStyleBitsUnderline : 0; |
| 834 | 834 | ||
| 835 | long? color = null; | 835 | long? color = null; |
| 836 | 836 | ||
| 837 | if (tuple.Red.HasValue || tuple.Green.HasValue || tuple.Blue.HasValue) | 837 | if (symbol.Red.HasValue || symbol.Green.HasValue || symbol.Blue.HasValue) |
| 838 | { | 838 | { |
| 839 | color = tuple.Red ?? 0; | 839 | color = symbol.Red ?? 0; |
| 840 | color += (long)(tuple.Green ?? 0) * 256; | 840 | color += (long)(symbol.Green ?? 0) * 256; |
| 841 | color += (long)(tuple.Blue ?? 0) * 65536; | 841 | color += (long)(symbol.Blue ?? 0) * 65536; |
| 842 | } | 842 | } |
| 843 | 843 | ||
| 844 | var row = this.CreateRow(tuple, "TextStyle"); | 844 | var row = this.CreateRow(symbol, "TextStyle"); |
| 845 | row[0] = tuple.Id.Id; | 845 | row[0] = symbol.Id.Id; |
| 846 | row[1] = tuple.FaceName; | 846 | row[1] = symbol.FaceName; |
| 847 | row[2] = tuple.Size; | 847 | row[2] = symbol.Size; |
| 848 | row[3] = color; | 848 | row[3] = color; |
| 849 | row[4] = styleBits == 0 ? null : (int?)styleBits; | 849 | row[4] = styleBits == 0 ? null : (int?)styleBits; |
| 850 | } | 850 | } |
| 851 | 851 | ||
| 852 | private void AddUpgradeTuple(UpgradeTuple tuple) | 852 | private void AddUpgradeSymbol(UpgradeSymbol symbol) |
| 853 | { | 853 | { |
| 854 | var row = (UpgradeRow)this.CreateRow(tuple, "Upgrade"); | 854 | var row = (UpgradeRow)this.CreateRow(symbol, "Upgrade"); |
| 855 | row.UpgradeCode = tuple.UpgradeCode; | 855 | row.UpgradeCode = symbol.UpgradeCode; |
| 856 | row.VersionMin = tuple.VersionMin; | 856 | row.VersionMin = symbol.VersionMin; |
| 857 | row.VersionMax = tuple.VersionMax; | 857 | row.VersionMax = symbol.VersionMax; |
| 858 | row.Language = tuple.Language; | 858 | row.Language = symbol.Language; |
| 859 | row.Remove = tuple.Remove; | 859 | row.Remove = symbol.Remove; |
| 860 | row.ActionProperty = tuple.ActionProperty; | 860 | row.ActionProperty = symbol.ActionProperty; |
| 861 | 861 | ||
| 862 | var attributes = tuple.MigrateFeatures ? WindowsInstallerConstants.MsidbUpgradeAttributesMigrateFeatures : 0; | 862 | var attributes = symbol.MigrateFeatures ? WindowsInstallerConstants.MsidbUpgradeAttributesMigrateFeatures : 0; |
| 863 | attributes |= tuple.OnlyDetect ? WindowsInstallerConstants.MsidbUpgradeAttributesOnlyDetect : 0; | 863 | attributes |= symbol.OnlyDetect ? WindowsInstallerConstants.MsidbUpgradeAttributesOnlyDetect : 0; |
| 864 | attributes |= tuple.IgnoreRemoveFailures ? WindowsInstallerConstants.MsidbUpgradeAttributesIgnoreRemoveFailure : 0; | 864 | attributes |= symbol.IgnoreRemoveFailures ? WindowsInstallerConstants.MsidbUpgradeAttributesIgnoreRemoveFailure : 0; |
| 865 | attributes |= tuple.VersionMinInclusive ? WindowsInstallerConstants.MsidbUpgradeAttributesVersionMinInclusive : 0; | 865 | attributes |= symbol.VersionMinInclusive ? WindowsInstallerConstants.MsidbUpgradeAttributesVersionMinInclusive : 0; |
| 866 | attributes |= tuple.VersionMaxInclusive ? WindowsInstallerConstants.MsidbUpgradeAttributesVersionMaxInclusive : 0; | 866 | attributes |= symbol.VersionMaxInclusive ? WindowsInstallerConstants.MsidbUpgradeAttributesVersionMaxInclusive : 0; |
| 867 | attributes |= tuple.ExcludeLanguages ? WindowsInstallerConstants.MsidbUpgradeAttributesLanguagesExclusive : 0; | 867 | attributes |= symbol.ExcludeLanguages ? WindowsInstallerConstants.MsidbUpgradeAttributesLanguagesExclusive : 0; |
| 868 | row.Attributes = attributes; | 868 | row.Attributes = attributes; |
| 869 | } | 869 | } |
| 870 | 870 | ||
| 871 | private void AddWixActionTuple(WixActionTuple tuple) | 871 | private void AddWixActionSymbol(WixActionSymbol symbol) |
| 872 | { | 872 | { |
| 873 | // Get the table definition for the action (and ensure the proper table exists for a module). | 873 | // Get the table definition for the action (and ensure the proper table exists for a module). |
| 874 | string sequenceTableName = null; | 874 | string sequenceTableName = null; |
| 875 | switch (tuple.SequenceTable) | 875 | switch (symbol.SequenceTable) |
| 876 | { | 876 | { |
| 877 | case SequenceTable.AdminExecuteSequence: | 877 | case SequenceTable.AdminExecuteSequence: |
| 878 | if (OutputType.Module == this.Output.Type) | 878 | if (OutputType.Module == this.Output.Type) |
| @@ -932,60 +932,60 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 932 | } | 932 | } |
| 933 | 933 | ||
| 934 | // create the action sequence row in the output | 934 | // create the action sequence row in the output |
| 935 | var row = this.CreateRow(tuple, sequenceTableName); | 935 | var row = this.CreateRow(symbol, sequenceTableName); |
| 936 | 936 | ||
| 937 | if (SectionType.Module == this.Section.Type) | 937 | if (SectionType.Module == this.Section.Type) |
| 938 | { | 938 | { |
| 939 | row[0] = tuple.Action; | 939 | row[0] = symbol.Action; |
| 940 | if (0 != tuple.Sequence) | 940 | if (0 != symbol.Sequence) |
| 941 | { | 941 | { |
| 942 | row[1] = tuple.Sequence; | 942 | row[1] = symbol.Sequence; |
| 943 | } | 943 | } |
| 944 | else | 944 | else |
| 945 | { | 945 | { |
| 946 | var after = (null == tuple.Before); | 946 | var after = (null == symbol.Before); |
| 947 | row[2] = after ? tuple.After : tuple.Before; | 947 | row[2] = after ? symbol.After : symbol.Before; |
| 948 | row[3] = after ? 1 : 0; | 948 | row[3] = after ? 1 : 0; |
| 949 | } | 949 | } |
| 950 | row[4] = tuple.Condition; | 950 | row[4] = symbol.Condition; |
| 951 | } | 951 | } |
| 952 | else | 952 | else |
| 953 | { | 953 | { |
| 954 | row[0] = tuple.Action; | 954 | row[0] = symbol.Action; |
| 955 | row[1] = tuple.Condition; | 955 | row[1] = symbol.Condition; |
| 956 | row[2] = tuple.Sequence; | 956 | row[2] = symbol.Sequence; |
| 957 | } | 957 | } |
| 958 | } | 958 | } |
| 959 | 959 | ||
| 960 | private void IndexCustomTableCellTuple(WixCustomTableCellTuple wixCustomTableCellTuple, Dictionary<string, List<WixCustomTableCellTuple>> cellsByTableAndRowId) | 960 | private void IndexCustomTableCellSymbol(WixCustomTableCellSymbol wixCustomTableCellSymbol, Dictionary<string, List<WixCustomTableCellSymbol>> cellsByTableAndRowId) |
| 961 | { | 961 | { |
| 962 | var tableAndRowId = wixCustomTableCellTuple.TableRef + "/" + wixCustomTableCellTuple.RowId; | 962 | var tableAndRowId = wixCustomTableCellSymbol.TableRef + "/" + wixCustomTableCellSymbol.RowId; |
| 963 | if (!cellsByTableAndRowId.TryGetValue(tableAndRowId, out var cells)) | 963 | if (!cellsByTableAndRowId.TryGetValue(tableAndRowId, out var cells)) |
| 964 | { | 964 | { |
| 965 | cells = new List<WixCustomTableCellTuple>(); | 965 | cells = new List<WixCustomTableCellSymbol>(); |
| 966 | cellsByTableAndRowId.Add(tableAndRowId, cells); | 966 | cellsByTableAndRowId.Add(tableAndRowId, cells); |
| 967 | } | 967 | } |
| 968 | 968 | ||
| 969 | cells.Add(wixCustomTableCellTuple); | 969 | cells.Add(wixCustomTableCellSymbol); |
| 970 | } | 970 | } |
| 971 | 971 | ||
| 972 | private void AddIndexedCellTuples(Dictionary<string, List<WixCustomTableCellTuple>> cellsByTableAndRowId) | 972 | private void AddIndexedCellSymbols(Dictionary<string, List<WixCustomTableCellSymbol>> cellsByTableAndRowId) |
| 973 | { | 973 | { |
| 974 | foreach (var rowOfCells in cellsByTableAndRowId.Values) | 974 | foreach (var rowOfCells in cellsByTableAndRowId.Values) |
| 975 | { | 975 | { |
| 976 | var firstCellTuple = rowOfCells[0]; | 976 | var firstCellSymbol = rowOfCells[0]; |
| 977 | var customTableDefinition = this.TableDefinitions[firstCellTuple.TableRef]; | 977 | var customTableDefinition = this.TableDefinitions[firstCellSymbol.TableRef]; |
| 978 | 978 | ||
| 979 | if (customTableDefinition.Unreal) | 979 | if (customTableDefinition.Unreal) |
| 980 | { | 980 | { |
| 981 | continue; | 981 | continue; |
| 982 | } | 982 | } |
| 983 | 983 | ||
| 984 | var customRow = this.CreateRow(firstCellTuple, customTableDefinition); | 984 | var customRow = this.CreateRow(firstCellSymbol, customTableDefinition); |
| 985 | var customRowFieldsByColumnName = customRow.Fields.ToDictionary(f => f.Column.Name); | 985 | var customRowFieldsByColumnName = customRow.Fields.ToDictionary(f => f.Column.Name); |
| 986 | 986 | ||
| 987 | #if TODO // SectionId seems like a good thing to preserve. | 987 | #if TODO // SectionId seems like a good thing to preserve. |
| 988 | customRow.SectionId = tuple.SectionId; | 988 | customRow.SectionId = symbol.SectionId; |
| 989 | #endif | 989 | #endif |
| 990 | foreach (var cell in rowOfCells) | 990 | foreach (var cell in rowOfCells) |
| 991 | { | 991 | { |
| @@ -1037,23 +1037,23 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 1037 | { | 1037 | { |
| 1038 | if (!customTableDefinition.Columns[i].Nullable && (null == customRow.Fields[i].Data || 0 == customRow.Fields[i].Data.ToString().Length)) | 1038 | if (!customTableDefinition.Columns[i].Nullable && (null == customRow.Fields[i].Data || 0 == customRow.Fields[i].Data.ToString().Length)) |
| 1039 | { | 1039 | { |
| 1040 | this.Messaging.Write(ErrorMessages.NoDataForColumn(firstCellTuple.SourceLineNumbers, customTableDefinition.Columns[i].Name, customTableDefinition.Name)); | 1040 | this.Messaging.Write(ErrorMessages.NoDataForColumn(firstCellSymbol.SourceLineNumbers, customTableDefinition.Columns[i].Name, customTableDefinition.Name)); |
| 1041 | } | 1041 | } |
| 1042 | } | 1042 | } |
| 1043 | } | 1043 | } |
| 1044 | } | 1044 | } |
| 1045 | 1045 | ||
| 1046 | private void AddWixEnsureTableTuple(WixEnsureTableTuple tuple) | 1046 | private void AddWixEnsureTableSymbol(WixEnsureTableSymbol symbol) |
| 1047 | { | 1047 | { |
| 1048 | var tableDefinition = this.TableDefinitions[tuple.Table]; | 1048 | var tableDefinition = this.TableDefinitions[symbol.Table]; |
| 1049 | this.Output.EnsureTable(tableDefinition); | 1049 | this.Output.EnsureTable(tableDefinition); |
| 1050 | } | 1050 | } |
| 1051 | 1051 | ||
| 1052 | private bool AddTupleFromExtension(IntermediateTuple tuple) | 1052 | private bool AddSymbolFromExtension(IntermediateSymbol symbol) |
| 1053 | { | 1053 | { |
| 1054 | foreach (var extension in this.BackendExtensions) | 1054 | foreach (var extension in this.BackendExtensions) |
| 1055 | { | 1055 | { |
| 1056 | if (extension.TryAddTupleToOutput(this.Section, tuple, this.Output, this.TableDefinitions)) | 1056 | if (extension.TryAddSymbolToOutput(this.Section, symbol, this.Output, this.TableDefinitions)) |
| 1057 | { | 1057 | { |
| 1058 | return true; | 1058 | return true; |
| 1059 | } | 1059 | } |
| @@ -1062,8 +1062,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 1062 | return false; | 1062 | return false; |
| 1063 | } | 1063 | } |
| 1064 | 1064 | ||
| 1065 | private bool AddTupleDefaultly(IntermediateTuple tuple) => | 1065 | private bool AddSymbolDefaultly(IntermediateSymbol symbol) => |
| 1066 | this.BackendHelper.TryAddTupleToOutputMatchingTableDefinitions(this.Section, tuple, this.Output, this.TableDefinitions); | 1066 | this.BackendHelper.TryAddSymbolToOutputMatchingTableDefinitions(this.Section, symbol, this.Output, this.TableDefinitions); |
| 1067 | 1067 | ||
| 1068 | private static OutputType SectionTypeToOutputType(SectionType type) | 1068 | private static OutputType SectionTypeToOutputType(SectionType type) |
| 1069 | { | 1069 | { |
| @@ -1085,11 +1085,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 1085 | } | 1085 | } |
| 1086 | } | 1086 | } |
| 1087 | 1087 | ||
| 1088 | private Row CreateRow(IntermediateTuple tuple, string tableDefinitionName) => | 1088 | private Row CreateRow(IntermediateSymbol symbol, string tableDefinitionName) => |
| 1089 | this.CreateRow(tuple, this.TableDefinitions[tableDefinitionName]); | 1089 | this.CreateRow(symbol, this.TableDefinitions[tableDefinitionName]); |
| 1090 | 1090 | ||
| 1091 | private Row CreateRow(IntermediateTuple tuple, TableDefinition tableDefinition) => | 1091 | private Row CreateRow(IntermediateSymbol symbol, TableDefinition tableDefinition) => |
| 1092 | this.BackendHelper.CreateRow(this.Section, tuple, this.Output, tableDefinition); | 1092 | this.BackendHelper.CreateRow(this.Section, symbol, this.Output, tableDefinition); |
| 1093 | 1093 | ||
| 1094 | private static string GetMsiFilenameValue(string shortName, string longName) | 1094 | private static string GetMsiFilenameValue(string shortName, string longName) |
| 1095 | { | 1095 | { |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CreatePatchTransformsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CreatePatchTransformsCommand.cs index f65f885b..76e6dd56 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CreatePatchTransformsCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CreatePatchTransformsCommand.cs | |||
| @@ -9,7 +9,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 9 | using WixToolset.Core.WindowsInstaller.Msi; | 9 | using WixToolset.Core.WindowsInstaller.Msi; |
| 10 | using WixToolset.Core.WindowsInstaller.Unbind; | 10 | using WixToolset.Core.WindowsInstaller.Unbind; |
| 11 | using WixToolset.Data; | 11 | using WixToolset.Data; |
| 12 | using WixToolset.Data.Tuples; | 12 | using WixToolset.Data.Symbols; |
| 13 | using WixToolset.Data.WindowsInstaller; | 13 | using WixToolset.Data.WindowsInstaller; |
| 14 | using WixToolset.Extensibility.Services; | 14 | using WixToolset.Extensibility.Services; |
| 15 | 15 | ||
| @@ -34,16 +34,16 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 34 | { | 34 | { |
| 35 | var patchTransforms = new List<PatchTransform>(); | 35 | var patchTransforms = new List<PatchTransform>(); |
| 36 | 36 | ||
| 37 | var tuples = this.Intermediate.Sections.SelectMany(s => s.Tuples).OfType<WixPatchBaselineTuple>(); | 37 | var symbols = this.Intermediate.Sections.SelectMany(s => s.Symbols).OfType<WixPatchBaselineSymbol>(); |
| 38 | 38 | ||
| 39 | foreach (var tuple in tuples) | 39 | foreach (var symbol in symbols) |
| 40 | { | 40 | { |
| 41 | WindowsInstallerData transform; | 41 | WindowsInstallerData transform; |
| 42 | 42 | ||
| 43 | if (tuple.TransformFile is null) | 43 | if (symbol.TransformFile is null) |
| 44 | { | 44 | { |
| 45 | var baselineData = this.GetData(tuple.BaselineFile.Path); | 45 | var baselineData = this.GetData(symbol.BaselineFile.Path); |
| 46 | var updateData = this.GetData(tuple.UpdateFile.Path); | 46 | var updateData = this.GetData(symbol.UpdateFile.Path); |
| 47 | 47 | ||
| 48 | var command = new GenerateTransformCommand(this.Messaging, baselineData, updateData, preserveUnchangedRows: true, showPedanticMessages: false); | 48 | var command = new GenerateTransformCommand(this.Messaging, baselineData, updateData, preserveUnchangedRows: true, showPedanticMessages: false); |
| 49 | transform = command.Execute(); | 49 | transform = command.Execute(); |
| @@ -52,11 +52,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 52 | { | 52 | { |
| 53 | var exportBasePath = Path.Combine(this.IntermediateFolder, "_trans"); // TODO: come up with a better path. | 53 | var exportBasePath = Path.Combine(this.IntermediateFolder, "_trans"); // TODO: come up with a better path. |
| 54 | 54 | ||
| 55 | var command = new UnbindTransformCommand(this.Messaging, tuple.TransformFile.Path, exportBasePath, this.IntermediateFolder); | 55 | var command = new UnbindTransformCommand(this.Messaging, symbol.TransformFile.Path, exportBasePath, this.IntermediateFolder); |
| 56 | transform = command.Execute(); | 56 | transform = command.Execute(); |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | patchTransforms.Add(new PatchTransform(tuple.Id.Id, transform)); | 59 | patchTransforms.Add(new PatchTransform(symbol.Id.Id, transform)); |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | this.PatchTransforms = patchTransforms; | 62 | this.PatchTransforms = patchTransforms; |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CreateSpecialPropertiesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CreateSpecialPropertiesCommand.cs index 5b4fe9e5..0a042f48 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CreateSpecialPropertiesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CreateSpecialPropertiesCommand.cs | |||
| @@ -6,7 +6,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 6 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 7 | using System.Linq; | 7 | using System.Linq; |
| 8 | using WixToolset.Data; | 8 | using WixToolset.Data; |
| 9 | using WixToolset.Data.Tuples; | 9 | using WixToolset.Data.Symbols; |
| 10 | 10 | ||
| 11 | internal class CreateSpecialPropertiesCommand | 11 | internal class CreateSpecialPropertiesCommand |
| 12 | { | 12 | { |
| @@ -24,7 +24,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 24 | var secureProperties = new SortedSet<string>(); | 24 | var secureProperties = new SortedSet<string>(); |
| 25 | var hiddenProperties = new SortedSet<string>(); | 25 | var hiddenProperties = new SortedSet<string>(); |
| 26 | 26 | ||
| 27 | foreach (var wixPropertyRow in this.Section.Tuples.OfType<WixPropertyTuple>()) | 27 | foreach (var wixPropertyRow in this.Section.Symbols.OfType<WixPropertySymbol>()) |
| 28 | { | 28 | { |
| 29 | if (wixPropertyRow.Admin) | 29 | if (wixPropertyRow.Admin) |
| 30 | { | 30 | { |
| @@ -43,7 +43,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | // Hide properties for in-script custom actions that have HideTarget set. | 45 | // Hide properties for in-script custom actions that have HideTarget set. |
| 46 | var hideTargetCustomActions = this.Section.Tuples.OfType<CustomActionTuple>().Where( | 46 | var hideTargetCustomActions = this.Section.Symbols.OfType<CustomActionSymbol>().Where( |
| 47 | ca => ca.Hidden | 47 | ca => ca.Hidden |
| 48 | && (ca.ExecutionType == CustomActionExecutionType.Deferred | 48 | && (ca.ExecutionType == CustomActionExecutionType.Deferred |
| 49 | || ca.ExecutionType == CustomActionExecutionType.Commit | 49 | || ca.ExecutionType == CustomActionExecutionType.Commit |
| @@ -52,12 +52,12 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 52 | hiddenProperties.UnionWith(hideTargetCustomActions); | 52 | hiddenProperties.UnionWith(hideTargetCustomActions); |
| 53 | 53 | ||
| 54 | // Ensure upgrade action properties are secure. | 54 | // Ensure upgrade action properties are secure. |
| 55 | var actionProperties = this.Section.Tuples.OfType<UpgradeTuple>().Select(u => u.ActionProperty); | 55 | var actionProperties = this.Section.Symbols.OfType<UpgradeSymbol>().Select(u => u.ActionProperty); |
| 56 | secureProperties.UnionWith(actionProperties); | 56 | secureProperties.UnionWith(actionProperties); |
| 57 | 57 | ||
| 58 | if (0 < adminProperties.Count) | 58 | if (0 < adminProperties.Count) |
| 59 | { | 59 | { |
| 60 | this.Section.AddTuple(new PropertyTuple(null, new Identifier(AccessModifier.Private, "AdminProperties")) | 60 | this.Section.AddSymbol(new PropertySymbol(null, new Identifier(AccessModifier.Private, "AdminProperties")) |
| 61 | { | 61 | { |
| 62 | Value = String.Join(";", adminProperties), | 62 | Value = String.Join(";", adminProperties), |
| 63 | }); | 63 | }); |
| @@ -65,7 +65,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 65 | 65 | ||
| 66 | if (0 < secureProperties.Count) | 66 | if (0 < secureProperties.Count) |
| 67 | { | 67 | { |
| 68 | this.Section.AddTuple(new PropertyTuple(null, new Identifier(AccessModifier.Private, "SecureCustomProperties")) | 68 | this.Section.AddSymbol(new PropertySymbol(null, new Identifier(AccessModifier.Private, "SecureCustomProperties")) |
| 69 | { | 69 | { |
| 70 | Value = String.Join(";", secureProperties), | 70 | Value = String.Join(";", secureProperties), |
| 71 | }); | 71 | }); |
| @@ -73,7 +73,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 73 | 73 | ||
| 74 | if (0 < hiddenProperties.Count) | 74 | if (0 < hiddenProperties.Count) |
| 75 | { | 75 | { |
| 76 | this.Section.AddTuple(new PropertyTuple(null, new Identifier(AccessModifier.Private, "MsiHiddenProperties")) | 76 | this.Section.AddSymbol(new PropertySymbol(null, new Identifier(AccessModifier.Private, "MsiHiddenProperties")) |
| 77 | { | 77 | { |
| 78 | Value = String.Join(";", hiddenProperties) | 78 | Value = String.Join(";", hiddenProperties) |
| 79 | }); | 79 | }); |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs index 792a13a9..37bda235 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs | |||
| @@ -12,7 +12,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 12 | using WixToolset.Data; | 12 | using WixToolset.Data; |
| 13 | using WixToolset.Core.Native; | 13 | using WixToolset.Core.Native; |
| 14 | using WixToolset.Core.Bind; | 14 | using WixToolset.Core.Bind; |
| 15 | using WixToolset.Data.Tuples; | 15 | using WixToolset.Data.Symbols; |
| 16 | using WixToolset.Extensibility.Services; | 16 | using WixToolset.Extensibility.Services; |
| 17 | using WixToolset.Core.WindowsInstaller.Msi; | 17 | using WixToolset.Core.WindowsInstaller.Msi; |
| 18 | 18 | ||
| @@ -21,10 +21,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 21 | /// </summary> | 21 | /// </summary> |
| 22 | internal class ExtractMergeModuleFilesCommand | 22 | internal class ExtractMergeModuleFilesCommand |
| 23 | { | 23 | { |
| 24 | public ExtractMergeModuleFilesCommand(IMessaging messaging, IEnumerable<WixMergeTuple> wixMergeTuples, IEnumerable<FileFacade> fileFacades, int installerVersion, string intermediateFolder, bool suppressLayout) | 24 | public ExtractMergeModuleFilesCommand(IMessaging messaging, IEnumerable<WixMergeSymbol> wixMergeSymbols, IEnumerable<FileFacade> fileFacades, int installerVersion, string intermediateFolder, bool suppressLayout) |
| 25 | { | 25 | { |
| 26 | this.Messaging = messaging; | 26 | this.Messaging = messaging; |
| 27 | this.WixMergeTuples = wixMergeTuples; | 27 | this.WixMergeSymbols = wixMergeSymbols; |
| 28 | this.FileFacades = fileFacades; | 28 | this.FileFacades = fileFacades; |
| 29 | this.OutputInstallerVersion = installerVersion; | 29 | this.OutputInstallerVersion = installerVersion; |
| 30 | this.IntermediateFolder = intermediateFolder; | 30 | this.IntermediateFolder = intermediateFolder; |
| @@ -33,7 +33,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 33 | 33 | ||
| 34 | private IMessaging Messaging { get; } | 34 | private IMessaging Messaging { get; } |
| 35 | 35 | ||
| 36 | private IEnumerable<WixMergeTuple> WixMergeTuples { get; } | 36 | private IEnumerable<WixMergeSymbol> WixMergeSymbols { get; } |
| 37 | 37 | ||
| 38 | private IEnumerable<FileFacade> FileFacades { get; } | 38 | private IEnumerable<FileFacade> FileFacades { get; } |
| 39 | 39 | ||
| @@ -61,7 +61,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 61 | // is a lot more costly for the common cases. | 61 | // is a lot more costly for the common cases. |
| 62 | var indexedFileFacades = this.FileFacades.ToDictionary(f => f.Id, StringComparer.Ordinal); | 62 | var indexedFileFacades = this.FileFacades.ToDictionary(f => f.Id, StringComparer.Ordinal); |
| 63 | 63 | ||
| 64 | foreach (var wixMergeRow in this.WixMergeTuples) | 64 | foreach (var wixMergeRow in this.WixMergeSymbols) |
| 65 | { | 65 | { |
| 66 | var containsFiles = this.CreateFacadesForMergeModuleFiles(wixMergeRow, mergeModulesFileFacades, indexedFileFacades); | 66 | var containsFiles = this.CreateFacadesForMergeModuleFiles(wixMergeRow, mergeModulesFileFacades, indexedFileFacades); |
| 67 | 67 | ||
| @@ -75,7 +75,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 75 | this.MergeModulesFileFacades = mergeModulesFileFacades; | 75 | this.MergeModulesFileFacades = mergeModulesFileFacades; |
| 76 | } | 76 | } |
| 77 | 77 | ||
| 78 | private bool CreateFacadesForMergeModuleFiles(WixMergeTuple wixMergeRow, List<FileFacade> mergeModulesFileFacades, Dictionary<string, FileFacade> indexedFileFacades) | 78 | private bool CreateFacadesForMergeModuleFiles(WixMergeSymbol wixMergeRow, List<FileFacade> mergeModulesFileFacades, Dictionary<string, FileFacade> indexedFileFacades) |
| 79 | { | 79 | { |
| 80 | var containsFiles = false; | 80 | var containsFiles = false; |
| 81 | 81 | ||
| @@ -96,13 +96,13 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 96 | // NOTE: this is very tricky - the merge module file rows are not added to the | 96 | // NOTE: this is very tricky - the merge module file rows are not added to the |
| 97 | // file table because they should not be created via idt import. Instead, these | 97 | // file table because they should not be created via idt import. Instead, these |
| 98 | // rows are created by merging in the actual modules. | 98 | // rows are created by merging in the actual modules. |
| 99 | var fileTuple = new FileTuple(wixMergeRow.SourceLineNumbers, new Identifier(AccessModifier.Private, record[1])); | 99 | var fileSymbol = new FileSymbol(wixMergeRow.SourceLineNumbers, new Identifier(AccessModifier.Private, record[1])); |
| 100 | fileTuple.Attributes = wixMergeRow.FileAttributes; | 100 | fileSymbol.Attributes = wixMergeRow.FileAttributes; |
| 101 | fileTuple.DirectoryRef = record[2]; | 101 | fileSymbol.DirectoryRef = record[2]; |
| 102 | fileTuple.DiskId = wixMergeRow.DiskId; | 102 | fileSymbol.DiskId = wixMergeRow.DiskId; |
| 103 | fileTuple.Source = new IntermediateFieldPathValue { Path = Path.Combine(this.IntermediateFolder, wixMergeRow.Id.Id, record[1]) }; | 103 | fileSymbol.Source = new IntermediateFieldPathValue { Path = Path.Combine(this.IntermediateFolder, wixMergeRow.Id.Id, record[1]) }; |
| 104 | 104 | ||
| 105 | var mergeModuleFileFacade = new FileFacade(true, fileTuple); | 105 | var mergeModuleFileFacade = new FileFacade(true, fileSymbol); |
| 106 | 106 | ||
| 107 | // If case-sensitive collision with another merge module or a user-authored file identifier. | 107 | // If case-sensitive collision with another merge module or a user-authored file identifier. |
| 108 | if (indexedFileFacades.TryGetValue(mergeModuleFileFacade.Id, out var collidingFacade)) | 108 | if (indexedFileFacades.TryGetValue(mergeModuleFileFacade.Id, out var collidingFacade)) |
| @@ -159,7 +159,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 159 | return containsFiles; | 159 | return containsFiles; |
| 160 | } | 160 | } |
| 161 | 161 | ||
| 162 | private void ExtractFilesFromMergeModule(IMsmMerge2 merge, WixMergeTuple wixMergeRow) | 162 | private void ExtractFilesFromMergeModule(IMsmMerge2 merge, WixMergeSymbol wixMergeRow) |
| 163 | { | 163 | { |
| 164 | var moduleOpen = false; | 164 | var moduleOpen = false; |
| 165 | short mergeLanguage; | 165 | short mergeLanguage; |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/GenerateTransformCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/GenerateTransformCommand.cs index fc713954..121ffb1b 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/GenerateTransformCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/GenerateTransformCommand.cs | |||
| @@ -7,7 +7,7 @@ namespace WixToolset.Core.WindowsInstaller | |||
| 7 | using System.Globalization; | 7 | using System.Globalization; |
| 8 | using WixToolset.Core.WindowsInstaller.Msi; | 8 | using WixToolset.Core.WindowsInstaller.Msi; |
| 9 | using WixToolset.Data; | 9 | using WixToolset.Data; |
| 10 | using WixToolset.Data.Tuples; | 10 | using WixToolset.Data.Symbols; |
| 11 | using WixToolset.Data.WindowsInstaller; | 11 | using WixToolset.Data.WindowsInstaller; |
| 12 | using WixToolset.Data.WindowsInstaller.Rows; | 12 | using WixToolset.Data.WindowsInstaller.Rows; |
| 13 | using WixToolset.Extensibility.Services; | 13 | using WixToolset.Extensibility.Services; |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/GetFileFacadesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/GetFileFacadesCommand.cs index 55171da4..c918e866 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/GetFileFacadesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/GetFileFacadesCommand.cs | |||
| @@ -8,7 +8,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 8 | using System.Linq; | 8 | using System.Linq; |
| 9 | using WixToolset.Core.Bind; | 9 | using WixToolset.Core.Bind; |
| 10 | using WixToolset.Data; | 10 | using WixToolset.Data; |
| 11 | using WixToolset.Data.Tuples; | 11 | using WixToolset.Data.Symbols; |
| 12 | 12 | ||
| 13 | internal class GetFileFacadesCommand | 13 | internal class GetFileFacadesCommand |
| 14 | { | 14 | { |
| @@ -25,10 +25,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 25 | { | 25 | { |
| 26 | var facades = new List<FileFacade>(); | 26 | var facades = new List<FileFacade>(); |
| 27 | 27 | ||
| 28 | var assemblyFile = this.Section.Tuples.OfType<AssemblyTuple>().ToDictionary(t => t.Id.Id); | 28 | var assemblyFile = this.Section.Symbols.OfType<AssemblySymbol>().ToDictionary(t => t.Id.Id); |
| 29 | //var deltaPatchFiles = this.Section.Tuples.OfType<WixDeltaPatchFileTuple>().ToDictionary(t => t.Id.Id); | 29 | //var deltaPatchFiles = this.Section.Symbols.OfType<WixDeltaPatchFileSymbol>().ToDictionary(t => t.Id.Id); |
| 30 | 30 | ||
| 31 | foreach (var file in this.Section.Tuples.OfType<FileTuple>()) | 31 | foreach (var file in this.Section.Symbols.OfType<FileSymbol>()) |
| 32 | { | 32 | { |
| 33 | assemblyFile.TryGetValue(file.Id.Id, out var assembly); | 33 | assemblyFile.TryGetValue(file.Id.Id, out var assembly); |
| 34 | 34 | ||
| @@ -49,13 +49,13 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 49 | /// <summary> | 49 | /// <summary> |
| 50 | /// Merge data from the WixPatchSymbolPaths rows into the WixDeltaPatchFile rows. | 50 | /// Merge data from the WixPatchSymbolPaths rows into the WixDeltaPatchFile rows. |
| 51 | /// </summary> | 51 | /// </summary> |
| 52 | public void ResolveDeltaPatchSymbolPaths(Dictionary<string, WixDeltaPatchFileTuple> deltaPatchFiles, IEnumerable<FileFacade> facades) | 52 | public void ResolveDeltaPatchSymbolPaths(Dictionary<string, WixDeltaPatchFileSymbol> deltaPatchFiles, IEnumerable<FileFacade> facades) |
| 53 | { | 53 | { |
| 54 | ILookup<string, FileFacade> filesByComponent = null; | 54 | ILookup<string, FileFacade> filesByComponent = null; |
| 55 | ILookup<string, FileFacade> filesByDirectory = null; | 55 | ILookup<string, FileFacade> filesByDirectory = null; |
| 56 | ILookup<string, FileFacade> filesByDiskId = null; | 56 | ILookup<string, FileFacade> filesByDiskId = null; |
| 57 | 57 | ||
| 58 | foreach (var row in this.Section.Tuples.OfType<WixDeltaPatchSymbolPathsTuple>().OrderBy(r => r.SymbolType)) | 58 | foreach (var row in this.Section.Symbols.OfType<WixDeltaPatchSymbolPathsSymbol>().OrderBy(r => r.SymbolType)) |
| 59 | { | 59 | { |
| 60 | switch (row.SymbolType) | 60 | switch (row.SymbolType) |
| 61 | { | 61 | { |
| @@ -119,7 +119,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 119 | /// <param name="row">Row from the WixPatchSymbolsPaths table.</param> | 119 | /// <param name="row">Row from the WixPatchSymbolsPaths table.</param> |
| 120 | /// <param name="file">FileRow into which to set symbol information.</param> | 120 | /// <param name="file">FileRow into which to set symbol information.</param> |
| 121 | /// <comment>This includes PreviousData as well.</comment> | 121 | /// <comment>This includes PreviousData as well.</comment> |
| 122 | private void MergeSymbolPaths(WixDeltaPatchSymbolPathsTuple row, WixDeltaPatchFileTuple file) | 122 | private void MergeSymbolPaths(WixDeltaPatchSymbolPathsSymbol row, WixDeltaPatchFileSymbol file) |
| 123 | { | 123 | { |
| 124 | if (file.SymbolPaths is null) | 124 | if (file.SymbolPaths is null) |
| 125 | { | 125 | { |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs index 0312ab44..2eb95bc5 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs | |||
| @@ -7,7 +7,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 7 | using System.Globalization; | 7 | using System.Globalization; |
| 8 | using System.Linq; | 8 | using System.Linq; |
| 9 | using WixToolset.Data; | 9 | using WixToolset.Data; |
| 10 | using WixToolset.Data.Tuples; | 10 | using WixToolset.Data.Symbols; |
| 11 | using WixToolset.Data.WindowsInstaller; | 11 | using WixToolset.Data.WindowsInstaller; |
| 12 | using WixToolset.Extensibility; | 12 | using WixToolset.Extensibility; |
| 13 | using WixToolset.Extensibility.Services; | 13 | using WixToolset.Extensibility.Services; |
| @@ -32,13 +32,13 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 32 | public TableDefinitionCollection Execute() | 32 | public TableDefinitionCollection Execute() |
| 33 | { | 33 | { |
| 34 | var tableDefinitions = new TableDefinitionCollection(WindowsInstallerTableDefinitions.All); | 34 | var tableDefinitions = new TableDefinitionCollection(WindowsInstallerTableDefinitions.All); |
| 35 | var customColumnsById = this.Section.Tuples.OfType<WixCustomTableColumnTuple>().ToDictionary(t => t.Id.Id); | 35 | var customColumnsById = this.Section.Symbols.OfType<WixCustomTableColumnSymbol>().ToDictionary(t => t.Id.Id); |
| 36 | 36 | ||
| 37 | if (customColumnsById.Any()) | 37 | if (customColumnsById.Any()) |
| 38 | { | 38 | { |
| 39 | foreach (var tuple in this.Section.Tuples.OfType<WixCustomTableTuple>()) | 39 | foreach (var symbol in this.Section.Symbols.OfType<WixCustomTableSymbol>()) |
| 40 | { | 40 | { |
| 41 | var customTableDefinition = this.CreateCustomTable(tuple, customColumnsById); | 41 | var customTableDefinition = this.CreateCustomTable(symbol, customColumnsById); |
| 42 | tableDefinitions.Add(customTableDefinition); | 42 | tableDefinitions.Add(customTableDefinition); |
| 43 | } | 43 | } |
| 44 | } | 44 | } |
| @@ -60,14 +60,14 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 60 | return this.TableDefinitions; | 60 | return this.TableDefinitions; |
| 61 | } | 61 | } |
| 62 | 62 | ||
| 63 | private TableDefinition CreateCustomTable(WixCustomTableTuple tuple, Dictionary<string, WixCustomTableColumnTuple> customColumnsById) | 63 | private TableDefinition CreateCustomTable(WixCustomTableSymbol symbol, Dictionary<string, WixCustomTableColumnSymbol> customColumnsById) |
| 64 | { | 64 | { |
| 65 | var columnNames = tuple.ColumnNamesSeparated; | 65 | var columnNames = symbol.ColumnNamesSeparated; |
| 66 | var columns = new List<ColumnDefinition>(columnNames.Length); | 66 | var columns = new List<ColumnDefinition>(columnNames.Length); |
| 67 | 67 | ||
| 68 | foreach (var name in columnNames) | 68 | foreach (var name in columnNames) |
| 69 | { | 69 | { |
| 70 | var column = customColumnsById[tuple.Id.Id + "/" + name]; | 70 | var column = customColumnsById[symbol.Id.Id + "/" + name]; |
| 71 | 71 | ||
| 72 | var type = ColumnType.Unknown; | 72 | var type = ColumnType.Unknown; |
| 73 | 73 | ||
| @@ -208,7 +208,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 208 | columns.Add(columnDefinition); | 208 | columns.Add(columnDefinition); |
| 209 | } | 209 | } |
| 210 | 210 | ||
| 211 | var customTable = new TableDefinition(tuple.Id.Id, null, columns, tuple.Unreal); | 211 | var customTable = new TableDefinition(symbol.Id.Id, null, columns, symbol.Unreal); |
| 212 | return customTable; | 212 | return customTable; |
| 213 | } | 213 | } |
| 214 | } | 214 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs index 1f85a33f..80684e7c 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs | |||
| @@ -13,7 +13,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 13 | using WixToolset.Core.Native; | 13 | using WixToolset.Core.Native; |
| 14 | using WixToolset.Core.WindowsInstaller.Msi; | 14 | using WixToolset.Core.WindowsInstaller.Msi; |
| 15 | using WixToolset.Data; | 15 | using WixToolset.Data; |
| 16 | using WixToolset.Data.Tuples; | 16 | using WixToolset.Data.Symbols; |
| 17 | using WixToolset.Data.WindowsInstaller; | 17 | using WixToolset.Data.WindowsInstaller; |
| 18 | using WixToolset.Extensibility.Services; | 18 | using WixToolset.Extensibility.Services; |
| 19 | 19 | ||
| @@ -46,8 +46,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 46 | 46 | ||
| 47 | public void Execute() | 47 | public void Execute() |
| 48 | { | 48 | { |
| 49 | var wixMergeTuples = this.Section.Tuples.OfType<WixMergeTuple>().ToList(); | 49 | var wixMergeSymbols = this.Section.Symbols.OfType<WixMergeSymbol>().ToList(); |
| 50 | if (!wixMergeTuples.Any()) | 50 | if (!wixMergeSymbols.Any()) |
| 51 | { | 51 | { |
| 52 | return; | 52 | return; |
| 53 | } | 53 | } |
| @@ -69,10 +69,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 69 | merge.OpenDatabase(this.OutputPath); | 69 | merge.OpenDatabase(this.OutputPath); |
| 70 | databaseOpen = true; | 70 | databaseOpen = true; |
| 71 | 71 | ||
| 72 | var featureModulesByMergeId = this.Section.Tuples.OfType<WixFeatureModulesTuple>().GroupBy(t => t.WixMergeRef).ToDictionary(g => g.Key); | 72 | var featureModulesByMergeId = this.Section.Symbols.OfType<WixFeatureModulesSymbol>().GroupBy(t => t.WixMergeRef).ToDictionary(g => g.Key); |
| 73 | 73 | ||
| 74 | // process all the merge rows | 74 | // process all the merge rows |
| 75 | foreach (var wixMergeRow in wixMergeTuples) | 75 | foreach (var wixMergeRow in wixMergeSymbols) |
| 76 | { | 76 | { |
| 77 | var moduleOpen = false; | 77 | var moduleOpen = false; |
| 78 | 78 | ||
| @@ -217,7 +217,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 217 | using (var db = new Database(this.OutputPath, OpenDatabase.Direct)) | 217 | using (var db = new Database(this.OutputPath, OpenDatabase.Direct)) |
| 218 | { | 218 | { |
| 219 | // Suppress individual actions. | 219 | // Suppress individual actions. |
| 220 | foreach (var suppressAction in this.Section.Tuples.OfType<WixSuppressActionTuple>()) | 220 | foreach (var suppressAction in this.Section.Symbols.OfType<WixSuppressActionSymbol>()) |
| 221 | { | 221 | { |
| 222 | var tableName = suppressAction.SequenceTable.WindowsInstallerTableName(); | 222 | var tableName = suppressAction.SequenceTable.WindowsInstallerTableName(); |
| 223 | if (db.TableExists(tableName)) | 223 | if (db.TableExists(tableName)) |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/ModularizeCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/ModularizeCommand.cs index 8b459d69..66ca502d 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/ModularizeCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/ModularizeCommand.cs | |||
| @@ -10,18 +10,18 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 10 | using System.Text; | 10 | using System.Text; |
| 11 | using System.Text.RegularExpressions; | 11 | using System.Text.RegularExpressions; |
| 12 | using WixToolset.Data; | 12 | using WixToolset.Data; |
| 13 | using WixToolset.Data.Tuples; | 13 | using WixToolset.Data.Symbols; |
| 14 | using WixToolset.Data.WindowsInstaller; | 14 | using WixToolset.Data.WindowsInstaller; |
| 15 | 15 | ||
| 16 | internal class ModularizeCommand | 16 | internal class ModularizeCommand |
| 17 | { | 17 | { |
| 18 | public ModularizeCommand(WindowsInstallerData output, string modularizationSuffix, IEnumerable<WixSuppressModularizationTuple> suppressTuples) | 18 | public ModularizeCommand(WindowsInstallerData output, string modularizationSuffix, IEnumerable<WixSuppressModularizationSymbol> suppressSymbols) |
| 19 | { | 19 | { |
| 20 | this.Output = output; | 20 | this.Output = output; |
| 21 | this.ModularizationSuffix = modularizationSuffix; | 21 | this.ModularizationSuffix = modularizationSuffix; |
| 22 | 22 | ||
| 23 | // Gather all the unique suppress modularization identifiers. | 23 | // Gather all the unique suppress modularization identifiers. |
| 24 | this.SuppressModularizationIdentifiers = new HashSet<string>(suppressTuples.Select(s => s.Id.Id)); | 24 | this.SuppressModularizationIdentifiers = new HashSet<string>(suppressSymbols.Select(s => s.Id.Id)); |
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | private WindowsInstallerData Output { get; } | 27 | private WindowsInstallerData Output { get; } |
| @@ -144,17 +144,17 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 144 | { | 144 | { |
| 145 | Debug.Assert(ColumnModularizeType.Condition == modularizeType); | 145 | Debug.Assert(ColumnModularizeType.Condition == modularizeType); |
| 146 | 146 | ||
| 147 | // This heinous looking regular expression is actually quite an elegant way | 147 | // This heinous looking regular expression is actually quite an elegant way |
| 148 | // to shred the entire condition into the identifiers that need to be | 148 | // to shred the entire condition into the identifiers that need to be |
| 149 | // modularized. Let's break it down piece by piece: | 149 | // modularized. Let's break it down piece by piece: |
| 150 | // | 150 | // |
| 151 | // 1. Look for the operators: NOT, EQV, XOR, OR, AND, IMP (plus a space). Note that the | 151 | // 1. Look for the operators: NOT, EQV, XOR, OR, AND, IMP (plus a space). Note that the |
| 152 | // regular expression is case insensitive so we don't have to worry about | 152 | // regular expression is case insensitive so we don't have to worry about |
| 153 | // all the permutations of these strings. | 153 | // all the permutations of these strings. |
| 154 | // 2. Look for quoted strings. Quoted strings are just text and are ignored | 154 | // 2. Look for quoted strings. Quoted strings are just text and are ignored |
| 155 | // outright. | 155 | // outright. |
| 156 | // 3. Look for environment variables. These look like identifiers we might | 156 | // 3. Look for environment variables. These look like identifiers we might |
| 157 | // otherwise be interested in but start with a percent sign. Like quoted | 157 | // otherwise be interested in but start with a percent sign. Like quoted |
| 158 | // strings these enviroment variable references are ignored outright. | 158 | // strings these enviroment variable references are ignored outright. |
| 159 | // 4. Match all identifiers that are things that need to be modularized. Note | 159 | // 4. Match all identifiers that are things that need to be modularized. Note |
| 160 | // the special characters (!, $, ?, &) that denote Component and Feature states. | 160 | // the special characters (!, $, ?, &) that denote Component and Feature states. |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/ProcessUncompressedFilesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/ProcessUncompressedFilesCommand.cs index 13d47215..ab5ebd4b 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/ProcessUncompressedFilesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/ProcessUncompressedFilesCommand.cs | |||
| @@ -9,7 +9,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 9 | using WixToolset.Core.Bind; | 9 | using WixToolset.Core.Bind; |
| 10 | using WixToolset.Core.WindowsInstaller.Msi; | 10 | using WixToolset.Core.WindowsInstaller.Msi; |
| 11 | using WixToolset.Data; | 11 | using WixToolset.Data; |
| 12 | using WixToolset.Data.Tuples; | 12 | using WixToolset.Data.Symbols; |
| 13 | using WixToolset.Extensibility.Data; | 13 | using WixToolset.Extensibility.Data; |
| 14 | using WixToolset.Extensibility.Services; | 14 | using WixToolset.Extensibility.Services; |
| 15 | 15 | ||
| @@ -41,7 +41,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 41 | 41 | ||
| 42 | public bool LongNamesInImage { private get; set; } | 42 | public bool LongNamesInImage { private get; set; } |
| 43 | 43 | ||
| 44 | public Func<MediaTuple, string, string, string> ResolveMedia { private get; set; } | 44 | public Func<MediaSymbol, string, string, string> ResolveMedia { private get; set; } |
| 45 | 45 | ||
| 46 | public IEnumerable<IFileTransfer> FileTransfers { get; private set; } | 46 | public IEnumerable<IFileTransfer> FileTransfers { get; private set; } |
| 47 | 47 | ||
| @@ -55,7 +55,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 55 | 55 | ||
| 56 | var directories = new Dictionary<string, IResolvedDirectory>(); | 56 | var directories = new Dictionary<string, IResolvedDirectory>(); |
| 57 | 57 | ||
| 58 | var mediaRows = this.Section.Tuples.OfType<MediaTuple>().ToDictionary(t => t.DiskId); | 58 | var mediaRows = this.Section.Symbols.OfType<MediaSymbol>().ToDictionary(t => t.DiskId); |
| 59 | 59 | ||
| 60 | using (var db = new Database(this.DatabasePath, OpenDatabase.ReadOnly)) | 60 | using (var db = new Database(this.DatabasePath, OpenDatabase.ReadOnly)) |
| 61 | { | 61 | { |
| @@ -78,11 +78,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 78 | // for each file in the array of uncompressed files | 78 | // for each file in the array of uncompressed files |
| 79 | foreach (FileFacade facade in this.FileFacades) | 79 | foreach (FileFacade facade in this.FileFacades) |
| 80 | { | 80 | { |
| 81 | var mediaTuple = mediaRows[facade.DiskId]; | 81 | var mediaSymbol = mediaRows[facade.DiskId]; |
| 82 | string relativeFileLayoutPath = null; | 82 | string relativeFileLayoutPath = null; |
| 83 | string mediaLayoutFolder = mediaTuple.Layout; | 83 | string mediaLayoutFolder = mediaSymbol.Layout; |
| 84 | 84 | ||
| 85 | var mediaLayoutDirectory = this.ResolveMedia(mediaTuple, mediaLayoutFolder, this.LayoutDirectory); | 85 | var mediaLayoutDirectory = this.ResolveMedia(mediaSymbol, mediaLayoutFolder, this.LayoutDirectory); |
| 86 | 86 | ||
| 87 | // setup up the query record and find the appropriate file in the | 87 | // setup up the query record and find the appropriate file in the |
| 88 | // previously executed file view | 88 | // previously executed file view |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs index a5055209..7f43da9a 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs | |||
| @@ -7,12 +7,12 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 7 | using System.Globalization; | 7 | using System.Globalization; |
| 8 | using System.Linq; | 8 | using System.Linq; |
| 9 | using WixToolset.Data; | 9 | using WixToolset.Data; |
| 10 | using WixToolset.Data.Tuples; | 10 | using WixToolset.Data.Symbols; |
| 11 | using WixToolset.Data.WindowsInstaller; | 11 | using WixToolset.Data.WindowsInstaller; |
| 12 | using WixToolset.Extensibility.Services; | 12 | using WixToolset.Extensibility.Services; |
| 13 | 13 | ||
| 14 | /// <summary> | 14 | /// <summary> |
| 15 | /// Set sequence numbers for all the actions and create tuples in the output object. | 15 | /// Set sequence numbers for all the actions and create symbols in the output object. |
| 16 | /// </summary> | 16 | /// </summary> |
| 17 | internal class SequenceActionsCommand | 17 | internal class SequenceActionsCommand |
| 18 | { | 18 | { |
| @@ -32,38 +32,38 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 32 | 32 | ||
| 33 | public void Execute() | 33 | public void Execute() |
| 34 | { | 34 | { |
| 35 | var requiredActionTuples = new Dictionary<string, WixActionTuple>(); | 35 | var requiredActionSymbols = new Dictionary<string, WixActionSymbol>(); |
| 36 | 36 | ||
| 37 | // Get the standard actions required based on tuples in the section. | 37 | // Get the standard actions required based on symbols in the section. |
| 38 | var overridableActionTuples = this.GetRequiredStandardActions(); | 38 | var overridableActionSymbols = this.GetRequiredStandardActions(); |
| 39 | 39 | ||
| 40 | // Index all the action tuples and look for collisions. | 40 | // Index all the action symbols and look for collisions. |
| 41 | foreach (var actionTuple in this.Section.Tuples.OfType<WixActionTuple>()) | 41 | foreach (var actionSymbol in this.Section.Symbols.OfType<WixActionSymbol>()) |
| 42 | { | 42 | { |
| 43 | if (actionTuple.Overridable) // overridable action | 43 | if (actionSymbol.Overridable) // overridable action |
| 44 | { | 44 | { |
| 45 | if (overridableActionTuples.TryGetValue(actionTuple.Id.Id, out var collidingActionTuple)) | 45 | if (overridableActionSymbols.TryGetValue(actionSymbol.Id.Id, out var collidingActionSymbol)) |
| 46 | { | 46 | { |
| 47 | this.Messaging.Write(ErrorMessages.OverridableActionCollision(actionTuple.SourceLineNumbers, actionTuple.SequenceTable.ToString(), actionTuple.Action)); | 47 | this.Messaging.Write(ErrorMessages.OverridableActionCollision(actionSymbol.SourceLineNumbers, actionSymbol.SequenceTable.ToString(), actionSymbol.Action)); |
| 48 | if (null != collidingActionTuple.SourceLineNumbers) | 48 | if (null != collidingActionSymbol.SourceLineNumbers) |
| 49 | { | 49 | { |
| 50 | this.Messaging.Write(ErrorMessages.OverridableActionCollision2(collidingActionTuple.SourceLineNumbers)); | 50 | this.Messaging.Write(ErrorMessages.OverridableActionCollision2(collidingActionSymbol.SourceLineNumbers)); |
| 51 | } | 51 | } |
| 52 | } | 52 | } |
| 53 | else | 53 | else |
| 54 | { | 54 | { |
| 55 | overridableActionTuples.Add(actionTuple.Id.Id, actionTuple); | 55 | overridableActionSymbols.Add(actionSymbol.Id.Id, actionSymbol); |
| 56 | } | 56 | } |
| 57 | } | 57 | } |
| 58 | else // unsequenced or sequenced action. | 58 | else // unsequenced or sequenced action. |
| 59 | { | 59 | { |
| 60 | // Unsequenced action (allowed for certain standard actions). | 60 | // Unsequenced action (allowed for certain standard actions). |
| 61 | if (null == actionTuple.Before && null == actionTuple.After && !actionTuple.Sequence.HasValue) | 61 | if (null == actionSymbol.Before && null == actionSymbol.After && !actionSymbol.Sequence.HasValue) |
| 62 | { | 62 | { |
| 63 | if (WindowsInstallerStandard.TryGetStandardAction(actionTuple.Id.Id, out var standardAction)) | 63 | if (WindowsInstallerStandard.TryGetStandardAction(actionSymbol.Id.Id, out var standardAction)) |
| 64 | { | 64 | { |
| 65 | // Populate the sequence from the standard action | 65 | // Populate the sequence from the standard action |
| 66 | actionTuple.Sequence = standardAction.Sequence; | 66 | actionSymbol.Sequence = standardAction.Sequence; |
| 67 | } | 67 | } |
| 68 | else // not a supported unscheduled action. | 68 | else // not a supported unscheduled action. |
| 69 | { | 69 | { |
| @@ -71,109 +71,109 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 71 | } | 71 | } |
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | if (requiredActionTuples.TryGetValue(actionTuple.Id.Id, out var collidingActionTuple)) | 74 | if (requiredActionSymbols.TryGetValue(actionSymbol.Id.Id, out var collidingActionSymbol)) |
| 75 | { | 75 | { |
| 76 | this.Messaging.Write(ErrorMessages.ActionCollision(actionTuple.SourceLineNumbers, actionTuple.SequenceTable.ToString(), actionTuple.Action)); | 76 | this.Messaging.Write(ErrorMessages.ActionCollision(actionSymbol.SourceLineNumbers, actionSymbol.SequenceTable.ToString(), actionSymbol.Action)); |
| 77 | if (null != collidingActionTuple.SourceLineNumbers) | 77 | if (null != collidingActionSymbol.SourceLineNumbers) |
| 78 | { | 78 | { |
| 79 | this.Messaging.Write(ErrorMessages.ActionCollision2(collidingActionTuple.SourceLineNumbers)); | 79 | this.Messaging.Write(ErrorMessages.ActionCollision2(collidingActionSymbol.SourceLineNumbers)); |
| 80 | } | 80 | } |
| 81 | } | 81 | } |
| 82 | else | 82 | else |
| 83 | { | 83 | { |
| 84 | requiredActionTuples.Add(actionTuple.Id.Id, actionTuple); | 84 | requiredActionSymbols.Add(actionSymbol.Id.Id, actionSymbol); |
| 85 | } | 85 | } |
| 86 | } | 86 | } |
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | // Add the overridable action tuples that are not overridden to the required action tuples. | 89 | // Add the overridable action symbols that are not overridden to the required action symbols. |
| 90 | foreach (var actionTuple in overridableActionTuples.Values) | 90 | foreach (var actionSymbol in overridableActionSymbols.Values) |
| 91 | { | 91 | { |
| 92 | if (!requiredActionTuples.ContainsKey(actionTuple.Id.Id)) | 92 | if (!requiredActionSymbols.ContainsKey(actionSymbol.Id.Id)) |
| 93 | { | 93 | { |
| 94 | requiredActionTuples.Add(actionTuple.Id.Id, actionTuple); | 94 | requiredActionSymbols.Add(actionSymbol.Id.Id, actionSymbol); |
| 95 | } | 95 | } |
| 96 | } | 96 | } |
| 97 | 97 | ||
| 98 | // Suppress the required actions that are overridable. | 98 | // Suppress the required actions that are overridable. |
| 99 | foreach (var suppressActionTuple in this.Section.Tuples.OfType<WixSuppressActionTuple>()) | 99 | foreach (var suppressActionSymbol in this.Section.Symbols.OfType<WixSuppressActionSymbol>()) |
| 100 | { | 100 | { |
| 101 | var key = suppressActionTuple.Id.Id; | 101 | var key = suppressActionSymbol.Id.Id; |
| 102 | 102 | ||
| 103 | // If there is an overridable tuple to suppress; suppress it. There is no warning if there | 103 | // If there is an overridable symbol to suppress; suppress it. There is no warning if there |
| 104 | // is no action to suppress because the action may be suppressed from a merge module in | 104 | // is no action to suppress because the action may be suppressed from a merge module in |
| 105 | // the binder. | 105 | // the binder. |
| 106 | if (requiredActionTuples.TryGetValue(key, out var requiredActionTuple)) | 106 | if (requiredActionSymbols.TryGetValue(key, out var requiredActionSymbol)) |
| 107 | { | 107 | { |
| 108 | if (requiredActionTuple.Overridable) | 108 | if (requiredActionSymbol.Overridable) |
| 109 | { | 109 | { |
| 110 | this.Messaging.Write(WarningMessages.SuppressAction(suppressActionTuple.SourceLineNumbers, suppressActionTuple.Action, suppressActionTuple.SequenceTable.ToString())); | 110 | this.Messaging.Write(WarningMessages.SuppressAction(suppressActionSymbol.SourceLineNumbers, suppressActionSymbol.Action, suppressActionSymbol.SequenceTable.ToString())); |
| 111 | if (null != requiredActionTuple.SourceLineNumbers) | 111 | if (null != requiredActionSymbol.SourceLineNumbers) |
| 112 | { | 112 | { |
| 113 | this.Messaging.Write(WarningMessages.SuppressAction2(requiredActionTuple.SourceLineNumbers)); | 113 | this.Messaging.Write(WarningMessages.SuppressAction2(requiredActionSymbol.SourceLineNumbers)); |
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | requiredActionTuples.Remove(key); | 116 | requiredActionSymbols.Remove(key); |
| 117 | } | 117 | } |
| 118 | else // suppressing a non-overridable action tuple | 118 | else // suppressing a non-overridable action symbol |
| 119 | { | 119 | { |
| 120 | this.Messaging.Write(ErrorMessages.SuppressNonoverridableAction(suppressActionTuple.SourceLineNumbers, suppressActionTuple.SequenceTable.ToString(), suppressActionTuple.Action)); | 120 | this.Messaging.Write(ErrorMessages.SuppressNonoverridableAction(suppressActionSymbol.SourceLineNumbers, suppressActionSymbol.SequenceTable.ToString(), suppressActionSymbol.Action)); |
| 121 | if (null != requiredActionTuple.SourceLineNumbers) | 121 | if (null != requiredActionSymbol.SourceLineNumbers) |
| 122 | { | 122 | { |
| 123 | this.Messaging.Write(ErrorMessages.SuppressNonoverridableAction2(requiredActionTuple.SourceLineNumbers)); | 123 | this.Messaging.Write(ErrorMessages.SuppressNonoverridableAction2(requiredActionSymbol.SourceLineNumbers)); |
| 124 | } | 124 | } |
| 125 | } | 125 | } |
| 126 | } | 126 | } |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | // Build up dependency trees of the relatively scheduled actions. | 129 | // Build up dependency trees of the relatively scheduled actions. |
| 130 | // Use ToList() to create a copy of the required action tuples so that new tuples can | 130 | // Use ToList() to create a copy of the required action symbols so that new symbols can |
| 131 | // be added while enumerating. | 131 | // be added while enumerating. |
| 132 | foreach (var actionTuple in requiredActionTuples.Values.ToList()) | 132 | foreach (var actionSymbol in requiredActionSymbols.Values.ToList()) |
| 133 | { | 133 | { |
| 134 | if (!actionTuple.Sequence.HasValue) | 134 | if (!actionSymbol.Sequence.HasValue) |
| 135 | { | 135 | { |
| 136 | // check for standard actions that don't have a sequence number in a merge module | 136 | // check for standard actions that don't have a sequence number in a merge module |
| 137 | if (SectionType.Module == this.Section.Type && WindowsInstallerStandard.IsStandardAction(actionTuple.Action)) | 137 | if (SectionType.Module == this.Section.Type && WindowsInstallerStandard.IsStandardAction(actionSymbol.Action)) |
| 138 | { | 138 | { |
| 139 | this.Messaging.Write(ErrorMessages.StandardActionRelativelyScheduledInModule(actionTuple.SourceLineNumbers, actionTuple.SequenceTable.ToString(), actionTuple.Action)); | 139 | this.Messaging.Write(ErrorMessages.StandardActionRelativelyScheduledInModule(actionSymbol.SourceLineNumbers, actionSymbol.SequenceTable.ToString(), actionSymbol.Action)); |
| 140 | } | 140 | } |
| 141 | 141 | ||
| 142 | this.SequenceActionTuple(actionTuple, requiredActionTuples); | 142 | this.SequenceActionSymbol(actionSymbol, requiredActionSymbols); |
| 143 | } | 143 | } |
| 144 | else if (SectionType.Module == this.Section.Type && 0 < actionTuple.Sequence && !WindowsInstallerStandard.IsStandardAction(actionTuple.Action)) // check for custom actions and dialogs that have a sequence number | 144 | else if (SectionType.Module == this.Section.Type && 0 < actionSymbol.Sequence && !WindowsInstallerStandard.IsStandardAction(actionSymbol.Action)) // check for custom actions and dialogs that have a sequence number |
| 145 | { | 145 | { |
| 146 | this.Messaging.Write(ErrorMessages.CustomActionSequencedInModule(actionTuple.SourceLineNumbers, actionTuple.SequenceTable.ToString(), actionTuple.Action)); | 146 | this.Messaging.Write(ErrorMessages.CustomActionSequencedInModule(actionSymbol.SourceLineNumbers, actionSymbol.SequenceTable.ToString(), actionSymbol.Action)); |
| 147 | } | 147 | } |
| 148 | } | 148 | } |
| 149 | 149 | ||
| 150 | // Look for standard actions with sequence restrictions that aren't necessarily scheduled based | 150 | // Look for standard actions with sequence restrictions that aren't necessarily scheduled based |
| 151 | // on the presence of a particular table. | 151 | // on the presence of a particular table. |
| 152 | if (requiredActionTuples.ContainsKey("InstallExecuteSequence/DuplicateFiles") && !requiredActionTuples.ContainsKey("InstallExecuteSequence/InstallFiles")) | 152 | if (requiredActionSymbols.ContainsKey("InstallExecuteSequence/DuplicateFiles") && !requiredActionSymbols.ContainsKey("InstallExecuteSequence/InstallFiles")) |
| 153 | { | 153 | { |
| 154 | WindowsInstallerStandard.TryGetStandardAction("InstallExecuteSequence/InstallFiles", out var standardAction); | 154 | WindowsInstallerStandard.TryGetStandardAction("InstallExecuteSequence/InstallFiles", out var standardAction); |
| 155 | requiredActionTuples.Add(standardAction.Id.Id, standardAction); | 155 | requiredActionSymbols.Add(standardAction.Id.Id, standardAction); |
| 156 | } | 156 | } |
| 157 | 157 | ||
| 158 | // Schedule actions. | 158 | // Schedule actions. |
| 159 | List<WixActionTuple> scheduledActionTuples; | 159 | List<WixActionSymbol> scheduledActionSymbols; |
| 160 | if (SectionType.Module == this.Section.Type) | 160 | if (SectionType.Module == this.Section.Type) |
| 161 | { | 161 | { |
| 162 | scheduledActionTuples = requiredActionTuples.Values.ToList(); | 162 | scheduledActionSymbols = requiredActionSymbols.Values.ToList(); |
| 163 | } | 163 | } |
| 164 | else | 164 | else |
| 165 | { | 165 | { |
| 166 | scheduledActionTuples = this.ScheduleActions(requiredActionTuples); | 166 | scheduledActionSymbols = this.ScheduleActions(requiredActionSymbols); |
| 167 | } | 167 | } |
| 168 | 168 | ||
| 169 | // Remove all existing WixActionTuples from the section then add the | 169 | // Remove all existing WixActionSymbols from the section then add the |
| 170 | // scheduled actions back to the section. Note: we add the indices in | 170 | // scheduled actions back to the section. Note: we add the indices in |
| 171 | // reverse order to make it easy to remove them from the list later. | 171 | // reverse order to make it easy to remove them from the list later. |
| 172 | var removeIndices = new List<int>(); | 172 | var removeIndices = new List<int>(); |
| 173 | for (var i = this.Section.Tuples.Count - 1; i >= 0; --i) | 173 | for (var i = this.Section.Symbols.Count - 1; i >= 0; --i) |
| 174 | { | 174 | { |
| 175 | var tuple = this.Section.Tuples[i]; | 175 | var symbol = this.Section.Symbols[i]; |
| 176 | if (tuple.Definition.Type == TupleDefinitionType.WixAction) | 176 | if (symbol.Definition.Type == SymbolDefinitionType.WixAction) |
| 177 | { | 177 | { |
| 178 | removeIndices.Add(i); | 178 | removeIndices.Add(i); |
| 179 | } | 179 | } |
| @@ -181,164 +181,164 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 181 | 181 | ||
| 182 | foreach (var removeIndex in removeIndices) | 182 | foreach (var removeIndex in removeIndices) |
| 183 | { | 183 | { |
| 184 | this.Section.Tuples.RemoveAt(removeIndex); | 184 | this.Section.Symbols.RemoveAt(removeIndex); |
| 185 | } | 185 | } |
| 186 | 186 | ||
| 187 | foreach (var action in scheduledActionTuples) | 187 | foreach (var action in scheduledActionSymbols) |
| 188 | { | 188 | { |
| 189 | this.Section.AddTuple(action); | 189 | this.Section.AddSymbol(action); |
| 190 | } | 190 | } |
| 191 | } | 191 | } |
| 192 | 192 | ||
| 193 | private Dictionary<string, WixActionTuple> GetRequiredStandardActions() | 193 | private Dictionary<string, WixActionSymbol> GetRequiredStandardActions() |
| 194 | { | 194 | { |
| 195 | var overridableActionTuples = new Dictionary<string, WixActionTuple>(); | 195 | var overridableActionSymbols = new Dictionary<string, WixActionSymbol>(); |
| 196 | 196 | ||
| 197 | var requiredActionIds = this.GetRequiredActionIds(); | 197 | var requiredActionIds = this.GetRequiredActionIds(); |
| 198 | 198 | ||
| 199 | foreach (var actionId in requiredActionIds) | 199 | foreach (var actionId in requiredActionIds) |
| 200 | { | 200 | { |
| 201 | WindowsInstallerStandard.TryGetStandardAction(actionId, out var standardAction); | 201 | WindowsInstallerStandard.TryGetStandardAction(actionId, out var standardAction); |
| 202 | overridableActionTuples.Add(standardAction.Id.Id, standardAction); | 202 | overridableActionSymbols.Add(standardAction.Id.Id, standardAction); |
| 203 | } | 203 | } |
| 204 | 204 | ||
| 205 | return overridableActionTuples; | 205 | return overridableActionSymbols; |
| 206 | } | 206 | } |
| 207 | 207 | ||
| 208 | private List<WixActionTuple> ScheduleActions(Dictionary<string, WixActionTuple> requiredActionTuples) | 208 | private List<WixActionSymbol> ScheduleActions(Dictionary<string, WixActionSymbol> requiredActionSymbols) |
| 209 | { | 209 | { |
| 210 | var scheduledActionTuples = new List<WixActionTuple>(); | 210 | var scheduledActionSymbols = new List<WixActionSymbol>(); |
| 211 | 211 | ||
| 212 | // Process each sequence table individually. | 212 | // Process each sequence table individually. |
| 213 | foreach (SequenceTable sequenceTable in Enum.GetValues(typeof(SequenceTable))) | 213 | foreach (SequenceTable sequenceTable in Enum.GetValues(typeof(SequenceTable))) |
| 214 | { | 214 | { |
| 215 | // Create a collection of just the action tuples in this sequence | 215 | // Create a collection of just the action symbols in this sequence |
| 216 | var sequenceActionTuples = requiredActionTuples.Values.Where(a => a.SequenceTable == sequenceTable).ToList(); | 216 | var sequenceActionSymbols = requiredActionSymbols.Values.Where(a => a.SequenceTable == sequenceTable).ToList(); |
| 217 | 217 | ||
| 218 | // Schedule the absolutely scheduled actions (by sorting them by their sequence numbers). | 218 | // Schedule the absolutely scheduled actions (by sorting them by their sequence numbers). |
| 219 | var absoluteActionTuples = new List<WixActionTuple>(); | 219 | var absoluteActionSymbols = new List<WixActionSymbol>(); |
| 220 | foreach (var actionTuple in sequenceActionTuples) | 220 | foreach (var actionSymbol in sequenceActionSymbols) |
| 221 | { | 221 | { |
| 222 | if (actionTuple.Sequence.HasValue) | 222 | if (actionSymbol.Sequence.HasValue) |
| 223 | { | 223 | { |
| 224 | // Look for sequence number collisions | 224 | // Look for sequence number collisions |
| 225 | foreach (var sequenceScheduledActionTuple in absoluteActionTuples) | 225 | foreach (var sequenceScheduledActionSymbol in absoluteActionSymbols) |
| 226 | { | 226 | { |
| 227 | if (sequenceScheduledActionTuple.Sequence == actionTuple.Sequence) | 227 | if (sequenceScheduledActionSymbol.Sequence == actionSymbol.Sequence) |
| 228 | { | 228 | { |
| 229 | this.Messaging.Write(WarningMessages.ActionSequenceCollision(actionTuple.SourceLineNumbers, actionTuple.SequenceTable.ToString(), actionTuple.Action, sequenceScheduledActionTuple.Action, actionTuple.Sequence ?? 0)); | 229 | this.Messaging.Write(WarningMessages.ActionSequenceCollision(actionSymbol.SourceLineNumbers, actionSymbol.SequenceTable.ToString(), actionSymbol.Action, sequenceScheduledActionSymbol.Action, actionSymbol.Sequence ?? 0)); |
| 230 | if (null != sequenceScheduledActionTuple.SourceLineNumbers) | 230 | if (null != sequenceScheduledActionSymbol.SourceLineNumbers) |
| 231 | { | 231 | { |
| 232 | this.Messaging.Write(WarningMessages.ActionSequenceCollision2(sequenceScheduledActionTuple.SourceLineNumbers)); | 232 | this.Messaging.Write(WarningMessages.ActionSequenceCollision2(sequenceScheduledActionSymbol.SourceLineNumbers)); |
| 233 | } | 233 | } |
| 234 | } | 234 | } |
| 235 | } | 235 | } |
| 236 | 236 | ||
| 237 | absoluteActionTuples.Add(actionTuple); | 237 | absoluteActionSymbols.Add(actionSymbol); |
| 238 | } | 238 | } |
| 239 | } | 239 | } |
| 240 | 240 | ||
| 241 | absoluteActionTuples.Sort((x, y) => (x.Sequence ?? 0).CompareTo(y.Sequence ?? 0)); | 241 | absoluteActionSymbols.Sort((x, y) => (x.Sequence ?? 0).CompareTo(y.Sequence ?? 0)); |
| 242 | 242 | ||
| 243 | // Schedule the relatively scheduled actions (by resolving the dependency trees). | 243 | // Schedule the relatively scheduled actions (by resolving the dependency trees). |
| 244 | var previousUsedSequence = 0; | 244 | var previousUsedSequence = 0; |
| 245 | var relativeActionTuples = new List<WixActionTuple>(); | 245 | var relativeActionSymbols = new List<WixActionSymbol>(); |
| 246 | for (int j = 0; j < absoluteActionTuples.Count; j++) | 246 | for (int j = 0; j < absoluteActionSymbols.Count; j++) |
| 247 | { | 247 | { |
| 248 | var absoluteActionTuple = absoluteActionTuples[j]; | 248 | var absoluteActionSymbol = absoluteActionSymbols[j]; |
| 249 | 249 | ||
| 250 | // Get all the relatively scheduled action tuples occuring before and after this absolutely scheduled action tuple. | 250 | // Get all the relatively scheduled action symbols occuring before and after this absolutely scheduled action symbol. |
| 251 | var relativeActions = this.GetAllRelativeActionsForSequenceType(sequenceTable, absoluteActionTuple); | 251 | var relativeActions = this.GetAllRelativeActionsForSequenceType(sequenceTable, absoluteActionSymbol); |
| 252 | 252 | ||
| 253 | // Check for relatively scheduled actions occuring before/after a special action | 253 | // Check for relatively scheduled actions occuring before/after a special action |
| 254 | // (those actions with a negative sequence number). | 254 | // (those actions with a negative sequence number). |
| 255 | if (absoluteActionTuple.Sequence < 0 && (relativeActions.PreviousActions.Any() || relativeActions.NextActions.Any())) | 255 | if (absoluteActionSymbol.Sequence < 0 && (relativeActions.PreviousActions.Any() || relativeActions.NextActions.Any())) |
| 256 | { | 256 | { |
| 257 | // Create errors for all the before actions. | 257 | // Create errors for all the before actions. |
| 258 | foreach (var actionTuple in relativeActions.PreviousActions) | 258 | foreach (var actionSymbol in relativeActions.PreviousActions) |
| 259 | { | 259 | { |
| 260 | this.Messaging.Write(ErrorMessages.ActionScheduledRelativeToTerminationAction(actionTuple.SourceLineNumbers, actionTuple.SequenceTable.ToString(), actionTuple.Action, absoluteActionTuple.Action)); | 260 | this.Messaging.Write(ErrorMessages.ActionScheduledRelativeToTerminationAction(actionSymbol.SourceLineNumbers, actionSymbol.SequenceTable.ToString(), actionSymbol.Action, absoluteActionSymbol.Action)); |
| 261 | } | 261 | } |
| 262 | 262 | ||
| 263 | // Create errors for all the after actions. | 263 | // Create errors for all the after actions. |
| 264 | foreach (var actionTuple in relativeActions.NextActions) | 264 | foreach (var actionSymbol in relativeActions.NextActions) |
| 265 | { | 265 | { |
| 266 | this.Messaging.Write(ErrorMessages.ActionScheduledRelativeToTerminationAction(actionTuple.SourceLineNumbers, actionTuple.SequenceTable.ToString(), actionTuple.Action, absoluteActionTuple.Action)); | 266 | this.Messaging.Write(ErrorMessages.ActionScheduledRelativeToTerminationAction(actionSymbol.SourceLineNumbers, actionSymbol.SequenceTable.ToString(), actionSymbol.Action, absoluteActionSymbol.Action)); |
| 267 | } | 267 | } |
| 268 | 268 | ||
| 269 | // If there is source line information for the absolutely scheduled action display it | 269 | // If there is source line information for the absolutely scheduled action display it |
| 270 | if (absoluteActionTuple.SourceLineNumbers != null) | 270 | if (absoluteActionSymbol.SourceLineNumbers != null) |
| 271 | { | 271 | { |
| 272 | this.Messaging.Write(ErrorMessages.ActionScheduledRelativeToTerminationAction2(absoluteActionTuple.SourceLineNumbers)); | 272 | this.Messaging.Write(ErrorMessages.ActionScheduledRelativeToTerminationAction2(absoluteActionSymbol.SourceLineNumbers)); |
| 273 | } | 273 | } |
| 274 | 274 | ||
| 275 | continue; | 275 | continue; |
| 276 | } | 276 | } |
| 277 | 277 | ||
| 278 | // Schedule the action tuples before this one. | 278 | // Schedule the action symbols before this one. |
| 279 | var unusedSequence = absoluteActionTuple.Sequence - 1; | 279 | var unusedSequence = absoluteActionSymbol.Sequence - 1; |
| 280 | for (var i = relativeActions.PreviousActions.Count - 1; i >= 0; i--) | 280 | for (var i = relativeActions.PreviousActions.Count - 1; i >= 0; i--) |
| 281 | { | 281 | { |
| 282 | var relativeActionTuple = relativeActions.PreviousActions[i]; | 282 | var relativeActionSymbol = relativeActions.PreviousActions[i]; |
| 283 | 283 | ||
| 284 | // look for collisions | 284 | // look for collisions |
| 285 | if (unusedSequence == previousUsedSequence) | 285 | if (unusedSequence == previousUsedSequence) |
| 286 | { | 286 | { |
| 287 | this.Messaging.Write(ErrorMessages.NoUniqueActionSequenceNumber(relativeActionTuple.SourceLineNumbers, relativeActionTuple.SequenceTable.ToString(), relativeActionTuple.Action, absoluteActionTuple.Action)); | 287 | this.Messaging.Write(ErrorMessages.NoUniqueActionSequenceNumber(relativeActionSymbol.SourceLineNumbers, relativeActionSymbol.SequenceTable.ToString(), relativeActionSymbol.Action, absoluteActionSymbol.Action)); |
| 288 | if (absoluteActionTuple.SourceLineNumbers != null) | 288 | if (absoluteActionSymbol.SourceLineNumbers != null) |
| 289 | { | 289 | { |
| 290 | this.Messaging.Write(ErrorMessages.NoUniqueActionSequenceNumber2(absoluteActionTuple.SourceLineNumbers)); | 290 | this.Messaging.Write(ErrorMessages.NoUniqueActionSequenceNumber2(absoluteActionSymbol.SourceLineNumbers)); |
| 291 | } | 291 | } |
| 292 | 292 | ||
| 293 | unusedSequence++; | 293 | unusedSequence++; |
| 294 | } | 294 | } |
| 295 | 295 | ||
| 296 | relativeActionTuple.Sequence = unusedSequence; | 296 | relativeActionSymbol.Sequence = unusedSequence; |
| 297 | relativeActionTuples.Add(relativeActionTuple); | 297 | relativeActionSymbols.Add(relativeActionSymbol); |
| 298 | 298 | ||
| 299 | unusedSequence--; | 299 | unusedSequence--; |
| 300 | } | 300 | } |
| 301 | 301 | ||
| 302 | // Determine the next used action sequence number. | 302 | // Determine the next used action sequence number. |
| 303 | var nextUsedSequence = Int16.MaxValue + 1; | 303 | var nextUsedSequence = Int16.MaxValue + 1; |
| 304 | if (absoluteActionTuples.Count > j + 1) | 304 | if (absoluteActionSymbols.Count > j + 1) |
| 305 | { | 305 | { |
| 306 | nextUsedSequence = absoluteActionTuples[j + 1].Sequence ?? 0; | 306 | nextUsedSequence = absoluteActionSymbols[j + 1].Sequence ?? 0; |
| 307 | } | 307 | } |
| 308 | 308 | ||
| 309 | // Schedule the action tuples after this one. | 309 | // Schedule the action symbols after this one. |
| 310 | unusedSequence = absoluteActionTuple.Sequence + 1; | 310 | unusedSequence = absoluteActionSymbol.Sequence + 1; |
| 311 | for (var i = 0; i < relativeActions.NextActions.Count; i++) | 311 | for (var i = 0; i < relativeActions.NextActions.Count; i++) |
| 312 | { | 312 | { |
| 313 | var relativeActionTuple = relativeActions.NextActions[i]; | 313 | var relativeActionSymbol = relativeActions.NextActions[i]; |
| 314 | 314 | ||
| 315 | if (unusedSequence == nextUsedSequence) | 315 | if (unusedSequence == nextUsedSequence) |
| 316 | { | 316 | { |
| 317 | this.Messaging.Write(ErrorMessages.NoUniqueActionSequenceNumber(relativeActionTuple.SourceLineNumbers, relativeActionTuple.SequenceTable.ToString(), relativeActionTuple.Action, absoluteActionTuple.Action)); | 317 | this.Messaging.Write(ErrorMessages.NoUniqueActionSequenceNumber(relativeActionSymbol.SourceLineNumbers, relativeActionSymbol.SequenceTable.ToString(), relativeActionSymbol.Action, absoluteActionSymbol.Action)); |
| 318 | if (absoluteActionTuple.SourceLineNumbers != null) | 318 | if (absoluteActionSymbol.SourceLineNumbers != null) |
| 319 | { | 319 | { |
| 320 | this.Messaging.Write(ErrorMessages.NoUniqueActionSequenceNumber2(absoluteActionTuple.SourceLineNumbers)); | 320 | this.Messaging.Write(ErrorMessages.NoUniqueActionSequenceNumber2(absoluteActionSymbol.SourceLineNumbers)); |
| 321 | } | 321 | } |
| 322 | 322 | ||
| 323 | unusedSequence--; | 323 | unusedSequence--; |
| 324 | } | 324 | } |
| 325 | 325 | ||
| 326 | relativeActionTuple.Sequence = unusedSequence; | 326 | relativeActionSymbol.Sequence = unusedSequence; |
| 327 | relativeActionTuples.Add(relativeActionTuple); | 327 | relativeActionSymbols.Add(relativeActionSymbol); |
| 328 | 328 | ||
| 329 | unusedSequence++; | 329 | unusedSequence++; |
| 330 | } | 330 | } |
| 331 | 331 | ||
| 332 | // keep track of this sequence number as the previous used sequence number for the next iteration | 332 | // keep track of this sequence number as the previous used sequence number for the next iteration |
| 333 | previousUsedSequence = absoluteActionTuple.Sequence ?? 0; | 333 | previousUsedSequence = absoluteActionSymbol.Sequence ?? 0; |
| 334 | } | 334 | } |
| 335 | 335 | ||
| 336 | // add the absolutely and relatively scheduled actions to the list of scheduled actions | 336 | // add the absolutely and relatively scheduled actions to the list of scheduled actions |
| 337 | scheduledActionTuples.AddRange(absoluteActionTuples); | 337 | scheduledActionSymbols.AddRange(absoluteActionSymbols); |
| 338 | scheduledActionTuples.AddRange(relativeActionTuples); | 338 | scheduledActionSymbols.AddRange(relativeActionSymbols); |
| 339 | } | 339 | } |
| 340 | 340 | ||
| 341 | return scheduledActionTuples; | 341 | return scheduledActionSymbols; |
| 342 | } | 342 | } |
| 343 | 343 | ||
| 344 | private IEnumerable<string> GetRequiredActionIds() | 344 | private IEnumerable<string> GetRequiredActionIds() |
| @@ -396,16 +396,16 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 396 | set.Add("InstallUISequence/ValidateProductID"); | 396 | set.Add("InstallUISequence/ValidateProductID"); |
| 397 | } | 397 | } |
| 398 | 398 | ||
| 399 | // Gather the required actions for each tuple type. | 399 | // Gather the required actions for each symbol type. |
| 400 | foreach (var tupleType in this.Section.Tuples.Select(t => t.Definition.Type).Distinct()) | 400 | foreach (var symbolType in this.Section.Symbols.Select(t => t.Definition.Type).Distinct()) |
| 401 | { | 401 | { |
| 402 | switch (tupleType) | 402 | switch (symbolType) |
| 403 | { | 403 | { |
| 404 | case TupleDefinitionType.AppSearch: | 404 | case SymbolDefinitionType.AppSearch: |
| 405 | set.Add("InstallExecuteSequence/AppSearch"); | 405 | set.Add("InstallExecuteSequence/AppSearch"); |
| 406 | set.Add("InstallUISequence/AppSearch"); | 406 | set.Add("InstallUISequence/AppSearch"); |
| 407 | break; | 407 | break; |
| 408 | case TupleDefinitionType.CCPSearch: | 408 | case SymbolDefinitionType.CCPSearch: |
| 409 | set.Add("InstallExecuteSequence/AppSearch"); | 409 | set.Add("InstallExecuteSequence/AppSearch"); |
| 410 | set.Add("InstallExecuteSequence/CCPSearch"); | 410 | set.Add("InstallExecuteSequence/CCPSearch"); |
| 411 | set.Add("InstallExecuteSequence/RMCCPSearch"); | 411 | set.Add("InstallExecuteSequence/RMCCPSearch"); |
| @@ -413,40 +413,40 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 413 | set.Add("InstallUISequence/CCPSearch"); | 413 | set.Add("InstallUISequence/CCPSearch"); |
| 414 | set.Add("InstallUISequence/RMCCPSearch"); | 414 | set.Add("InstallUISequence/RMCCPSearch"); |
| 415 | break; | 415 | break; |
| 416 | case TupleDefinitionType.Class: | 416 | case SymbolDefinitionType.Class: |
| 417 | set.Add("AdvertiseExecuteSequence/RegisterClassInfo"); | 417 | set.Add("AdvertiseExecuteSequence/RegisterClassInfo"); |
| 418 | set.Add("InstallExecuteSequence/RegisterClassInfo"); | 418 | set.Add("InstallExecuteSequence/RegisterClassInfo"); |
| 419 | set.Add("InstallExecuteSequence/UnregisterClassInfo"); | 419 | set.Add("InstallExecuteSequence/UnregisterClassInfo"); |
| 420 | break; | 420 | break; |
| 421 | case TupleDefinitionType.Complus: | 421 | case SymbolDefinitionType.Complus: |
| 422 | set.Add("InstallExecuteSequence/RegisterComPlus"); | 422 | set.Add("InstallExecuteSequence/RegisterComPlus"); |
| 423 | set.Add("InstallExecuteSequence/UnregisterComPlus"); | 423 | set.Add("InstallExecuteSequence/UnregisterComPlus"); |
| 424 | break; | 424 | break; |
| 425 | case TupleDefinitionType.CreateFolder: | 425 | case SymbolDefinitionType.CreateFolder: |
| 426 | set.Add("InstallExecuteSequence/CreateFolders"); | 426 | set.Add("InstallExecuteSequence/CreateFolders"); |
| 427 | set.Add("InstallExecuteSequence/RemoveFolders"); | 427 | set.Add("InstallExecuteSequence/RemoveFolders"); |
| 428 | break; | 428 | break; |
| 429 | case TupleDefinitionType.DuplicateFile: | 429 | case SymbolDefinitionType.DuplicateFile: |
| 430 | set.Add("InstallExecuteSequence/DuplicateFiles"); | 430 | set.Add("InstallExecuteSequence/DuplicateFiles"); |
| 431 | set.Add("InstallExecuteSequence/RemoveDuplicateFiles"); | 431 | set.Add("InstallExecuteSequence/RemoveDuplicateFiles"); |
| 432 | break; | 432 | break; |
| 433 | case TupleDefinitionType.Environment: | 433 | case SymbolDefinitionType.Environment: |
| 434 | set.Add("InstallExecuteSequence/WriteEnvironmentStrings"); | 434 | set.Add("InstallExecuteSequence/WriteEnvironmentStrings"); |
| 435 | set.Add("InstallExecuteSequence/RemoveEnvironmentStrings"); | 435 | set.Add("InstallExecuteSequence/RemoveEnvironmentStrings"); |
| 436 | break; | 436 | break; |
| 437 | case TupleDefinitionType.Extension: | 437 | case SymbolDefinitionType.Extension: |
| 438 | set.Add("AdvertiseExecuteSequence/RegisterExtensionInfo"); | 438 | set.Add("AdvertiseExecuteSequence/RegisterExtensionInfo"); |
| 439 | set.Add("InstallExecuteSequence/RegisterExtensionInfo"); | 439 | set.Add("InstallExecuteSequence/RegisterExtensionInfo"); |
| 440 | set.Add("InstallExecuteSequence/UnregisterExtensionInfo"); | 440 | set.Add("InstallExecuteSequence/UnregisterExtensionInfo"); |
| 441 | break; | 441 | break; |
| 442 | case TupleDefinitionType.File: | 442 | case SymbolDefinitionType.File: |
| 443 | set.Add("InstallExecuteSequence/InstallFiles"); | 443 | set.Add("InstallExecuteSequence/InstallFiles"); |
| 444 | set.Add("InstallExecuteSequence/RemoveFiles"); | 444 | set.Add("InstallExecuteSequence/RemoveFiles"); |
| 445 | 445 | ||
| 446 | var foundFont = false; | 446 | var foundFont = false; |
| 447 | var foundSelfReg = false; | 447 | var foundSelfReg = false; |
| 448 | var foundBindPath = false; | 448 | var foundBindPath = false; |
| 449 | foreach (var file in this.Section.Tuples.OfType<FileTuple>()) | 449 | foreach (var file in this.Section.Symbols.OfType<FileSymbol>()) |
| 450 | { | 450 | { |
| 451 | if (!foundFont && !String.IsNullOrEmpty(file.FontTitle)) | 451 | if (!foundFont && !String.IsNullOrEmpty(file.FontTitle)) |
| 452 | { | 452 | { |
| @@ -469,83 +469,83 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 469 | } | 469 | } |
| 470 | } | 470 | } |
| 471 | break; | 471 | break; |
| 472 | case TupleDefinitionType.IniFile: | 472 | case SymbolDefinitionType.IniFile: |
| 473 | set.Add("InstallExecuteSequence/WriteIniValues"); | 473 | set.Add("InstallExecuteSequence/WriteIniValues"); |
| 474 | set.Add("InstallExecuteSequence/RemoveIniValues"); | 474 | set.Add("InstallExecuteSequence/RemoveIniValues"); |
| 475 | break; | 475 | break; |
| 476 | case TupleDefinitionType.IsolatedComponent: | 476 | case SymbolDefinitionType.IsolatedComponent: |
| 477 | set.Add("InstallExecuteSequence/IsolateComponents"); | 477 | set.Add("InstallExecuteSequence/IsolateComponents"); |
| 478 | break; | 478 | break; |
| 479 | case TupleDefinitionType.LaunchCondition: | 479 | case SymbolDefinitionType.LaunchCondition: |
| 480 | set.Add("InstallExecuteSequence/LaunchConditions"); | 480 | set.Add("InstallExecuteSequence/LaunchConditions"); |
| 481 | set.Add("InstallUISequence/LaunchConditions"); | 481 | set.Add("InstallUISequence/LaunchConditions"); |
| 482 | break; | 482 | break; |
| 483 | case TupleDefinitionType.MIME: | 483 | case SymbolDefinitionType.MIME: |
| 484 | set.Add("AdvertiseExecuteSequence/RegisterMIMEInfo"); | 484 | set.Add("AdvertiseExecuteSequence/RegisterMIMEInfo"); |
| 485 | set.Add("InstallExecuteSequence/RegisterMIMEInfo"); | 485 | set.Add("InstallExecuteSequence/RegisterMIMEInfo"); |
| 486 | set.Add("InstallExecuteSequence/UnregisterMIMEInfo"); | 486 | set.Add("InstallExecuteSequence/UnregisterMIMEInfo"); |
| 487 | break; | 487 | break; |
| 488 | case TupleDefinitionType.MoveFile: | 488 | case SymbolDefinitionType.MoveFile: |
| 489 | set.Add("InstallExecuteSequence/MoveFiles"); | 489 | set.Add("InstallExecuteSequence/MoveFiles"); |
| 490 | break; | 490 | break; |
| 491 | case TupleDefinitionType.Assembly: | 491 | case SymbolDefinitionType.Assembly: |
| 492 | set.Add("AdvertiseExecuteSequence/MsiPublishAssemblies"); | 492 | set.Add("AdvertiseExecuteSequence/MsiPublishAssemblies"); |
| 493 | set.Add("InstallExecuteSequence/MsiPublishAssemblies"); | 493 | set.Add("InstallExecuteSequence/MsiPublishAssemblies"); |
| 494 | set.Add("InstallExecuteSequence/MsiUnpublishAssemblies"); | 494 | set.Add("InstallExecuteSequence/MsiUnpublishAssemblies"); |
| 495 | break; | 495 | break; |
| 496 | case TupleDefinitionType.MsiServiceConfig: | 496 | case SymbolDefinitionType.MsiServiceConfig: |
| 497 | case TupleDefinitionType.MsiServiceConfigFailureActions: | 497 | case SymbolDefinitionType.MsiServiceConfigFailureActions: |
| 498 | set.Add("InstallExecuteSequence/MsiConfigureServices"); | 498 | set.Add("InstallExecuteSequence/MsiConfigureServices"); |
| 499 | break; | 499 | break; |
| 500 | case TupleDefinitionType.ODBCDataSource: | 500 | case SymbolDefinitionType.ODBCDataSource: |
| 501 | case TupleDefinitionType.ODBCTranslator: | 501 | case SymbolDefinitionType.ODBCTranslator: |
| 502 | case TupleDefinitionType.ODBCDriver: | 502 | case SymbolDefinitionType.ODBCDriver: |
| 503 | set.Add("InstallExecuteSequence/SetODBCFolders"); | 503 | set.Add("InstallExecuteSequence/SetODBCFolders"); |
| 504 | set.Add("InstallExecuteSequence/InstallODBC"); | 504 | set.Add("InstallExecuteSequence/InstallODBC"); |
| 505 | set.Add("InstallExecuteSequence/RemoveODBC"); | 505 | set.Add("InstallExecuteSequence/RemoveODBC"); |
| 506 | break; | 506 | break; |
| 507 | case TupleDefinitionType.ProgId: | 507 | case SymbolDefinitionType.ProgId: |
| 508 | set.Add("AdvertiseExecuteSequence/RegisterProgIdInfo"); | 508 | set.Add("AdvertiseExecuteSequence/RegisterProgIdInfo"); |
| 509 | set.Add("InstallExecuteSequence/RegisterProgIdInfo"); | 509 | set.Add("InstallExecuteSequence/RegisterProgIdInfo"); |
| 510 | set.Add("InstallExecuteSequence/UnregisterProgIdInfo"); | 510 | set.Add("InstallExecuteSequence/UnregisterProgIdInfo"); |
| 511 | break; | 511 | break; |
| 512 | case TupleDefinitionType.PublishComponent: | 512 | case SymbolDefinitionType.PublishComponent: |
| 513 | set.Add("AdvertiseExecuteSequence/PublishComponents"); | 513 | set.Add("AdvertiseExecuteSequence/PublishComponents"); |
| 514 | set.Add("InstallExecuteSequence/PublishComponents"); | 514 | set.Add("InstallExecuteSequence/PublishComponents"); |
| 515 | set.Add("InstallExecuteSequence/UnpublishComponents"); | 515 | set.Add("InstallExecuteSequence/UnpublishComponents"); |
| 516 | break; | 516 | break; |
| 517 | case TupleDefinitionType.Registry: | 517 | case SymbolDefinitionType.Registry: |
| 518 | case TupleDefinitionType.RemoveRegistry: | 518 | case SymbolDefinitionType.RemoveRegistry: |
| 519 | set.Add("InstallExecuteSequence/WriteRegistryValues"); | 519 | set.Add("InstallExecuteSequence/WriteRegistryValues"); |
| 520 | set.Add("InstallExecuteSequence/RemoveRegistryValues"); | 520 | set.Add("InstallExecuteSequence/RemoveRegistryValues"); |
| 521 | break; | 521 | break; |
| 522 | case TupleDefinitionType.RemoveFile: | 522 | case SymbolDefinitionType.RemoveFile: |
| 523 | set.Add("InstallExecuteSequence/RemoveFiles"); | 523 | set.Add("InstallExecuteSequence/RemoveFiles"); |
| 524 | break; | 524 | break; |
| 525 | case TupleDefinitionType.ServiceControl: | 525 | case SymbolDefinitionType.ServiceControl: |
| 526 | set.Add("InstallExecuteSequence/StartServices"); | 526 | set.Add("InstallExecuteSequence/StartServices"); |
| 527 | set.Add("InstallExecuteSequence/StopServices"); | 527 | set.Add("InstallExecuteSequence/StopServices"); |
| 528 | set.Add("InstallExecuteSequence/DeleteServices"); | 528 | set.Add("InstallExecuteSequence/DeleteServices"); |
| 529 | break; | 529 | break; |
| 530 | case TupleDefinitionType.ServiceInstall: | 530 | case SymbolDefinitionType.ServiceInstall: |
| 531 | set.Add("InstallExecuteSequence/InstallServices"); | 531 | set.Add("InstallExecuteSequence/InstallServices"); |
| 532 | break; | 532 | break; |
| 533 | case TupleDefinitionType.Shortcut: | 533 | case SymbolDefinitionType.Shortcut: |
| 534 | set.Add("AdvertiseExecuteSequence/CreateShortcuts"); | 534 | set.Add("AdvertiseExecuteSequence/CreateShortcuts"); |
| 535 | set.Add("InstallExecuteSequence/CreateShortcuts"); | 535 | set.Add("InstallExecuteSequence/CreateShortcuts"); |
| 536 | set.Add("InstallExecuteSequence/RemoveShortcuts"); | 536 | set.Add("InstallExecuteSequence/RemoveShortcuts"); |
| 537 | break; | 537 | break; |
| 538 | case TupleDefinitionType.TypeLib: | 538 | case SymbolDefinitionType.TypeLib: |
| 539 | set.Add("InstallExecuteSequence/RegisterTypeLibraries"); | 539 | set.Add("InstallExecuteSequence/RegisterTypeLibraries"); |
| 540 | set.Add("InstallExecuteSequence/UnregisterTypeLibraries"); | 540 | set.Add("InstallExecuteSequence/UnregisterTypeLibraries"); |
| 541 | break; | 541 | break; |
| 542 | case TupleDefinitionType.Upgrade: | 542 | case SymbolDefinitionType.Upgrade: |
| 543 | set.Add("InstallExecuteSequence/FindRelatedProducts"); | 543 | set.Add("InstallExecuteSequence/FindRelatedProducts"); |
| 544 | set.Add("InstallUISequence/FindRelatedProducts"); | 544 | set.Add("InstallUISequence/FindRelatedProducts"); |
| 545 | 545 | ||
| 546 | // Only add the MigrateFeatureStates action if MigrateFeature attribute is set on | 546 | // Only add the MigrateFeatureStates action if MigrateFeature attribute is set on |
| 547 | // at least one UpgradeVersion element. | 547 | // at least one UpgradeVersion element. |
| 548 | if (this.Section.Tuples.OfType<UpgradeTuple>().Any(t => t.MigrateFeatures)) | 548 | if (this.Section.Symbols.OfType<UpgradeSymbol>().Any(t => t.MigrateFeatures)) |
| 549 | { | 549 | { |
| 550 | set.Add("InstallExecuteSequence/MigrateFeatureStates"); | 550 | set.Add("InstallExecuteSequence/MigrateFeatureStates"); |
| 551 | set.Add("InstallUISequence/MigrateFeatureStates"); | 551 | set.Add("InstallUISequence/MigrateFeatureStates"); |
| @@ -557,7 +557,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 557 | return set; | 557 | return set; |
| 558 | } | 558 | } |
| 559 | 559 | ||
| 560 | private IEnumerable<WixActionTuple> GetActions(SequenceTable sequence, string[] actionNames) | 560 | private IEnumerable<WixActionSymbol> GetActions(SequenceTable sequence, string[] actionNames) |
| 561 | { | 561 | { |
| 562 | foreach (var action in WindowsInstallerStandard.StandardActions()) | 562 | foreach (var action in WindowsInstallerStandard.StandardActions()) |
| 563 | { | 563 | { |
| @@ -571,64 +571,64 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 571 | /// <summary> | 571 | /// <summary> |
| 572 | /// Sequence an action before or after a standard action. | 572 | /// Sequence an action before or after a standard action. |
| 573 | /// </summary> | 573 | /// </summary> |
| 574 | /// <param name="actionTuple">The action tuple to be sequenced.</param> | 574 | /// <param name="actionSymbol">The action symbol to be sequenced.</param> |
| 575 | /// <param name="requiredActionTuples">Collection of actions which must be included.</param> | 575 | /// <param name="requiredActionSymbols">Collection of actions which must be included.</param> |
| 576 | private void SequenceActionTuple(WixActionTuple actionTuple, Dictionary<string, WixActionTuple> requiredActionTuples) | 576 | private void SequenceActionSymbol(WixActionSymbol actionSymbol, Dictionary<string, WixActionSymbol> requiredActionSymbols) |
| 577 | { | 577 | { |
| 578 | var after = false; | 578 | var after = false; |
| 579 | 579 | ||
| 580 | if (actionTuple.After != null) | 580 | if (actionSymbol.After != null) |
| 581 | { | 581 | { |
| 582 | after = true; | 582 | after = true; |
| 583 | } | 583 | } |
| 584 | else if (actionTuple.Before == null) | 584 | else if (actionSymbol.Before == null) |
| 585 | { | 585 | { |
| 586 | throw new InvalidOperationException("Found an action with no Sequence, Before, or After column set."); | 586 | throw new InvalidOperationException("Found an action with no Sequence, Before, or After column set."); |
| 587 | } | 587 | } |
| 588 | 588 | ||
| 589 | var parentActionName = (after ? actionTuple.After : actionTuple.Before); | 589 | var parentActionName = (after ? actionSymbol.After : actionSymbol.Before); |
| 590 | var parentActionKey = actionTuple.SequenceTable.ToString() + "/" + parentActionName; | 590 | var parentActionKey = actionSymbol.SequenceTable.ToString() + "/" + parentActionName; |
| 591 | 591 | ||
| 592 | if (!requiredActionTuples.TryGetValue(parentActionKey, out var parentActionTuple)) | 592 | if (!requiredActionSymbols.TryGetValue(parentActionKey, out var parentActionSymbol)) |
| 593 | { | 593 | { |
| 594 | // If the missing parent action is a standard action (with a suggested sequence number), add it. | 594 | // If the missing parent action is a standard action (with a suggested sequence number), add it. |
| 595 | if (WindowsInstallerStandard.TryGetStandardAction(parentActionKey, out parentActionTuple)) | 595 | if (WindowsInstallerStandard.TryGetStandardAction(parentActionKey, out parentActionSymbol)) |
| 596 | { | 596 | { |
| 597 | // Create a clone to avoid modifying the static copy of the object. | 597 | // Create a clone to avoid modifying the static copy of the object. |
| 598 | // TODO: consider this: parentActionTuple = parentActionTuple.Clone(); | 598 | // TODO: consider this: parentActionSymbol = parentActionSymbol.Clone(); |
| 599 | 599 | ||
| 600 | requiredActionTuples.Add(parentActionTuple.Id.Id, parentActionTuple); | 600 | requiredActionSymbols.Add(parentActionSymbol.Id.Id, parentActionSymbol); |
| 601 | } | 601 | } |
| 602 | else | 602 | else |
| 603 | { | 603 | { |
| 604 | throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, "Found an action with a non-existent {0} action: {1}.", (after ? "After" : "Before"), parentActionName)); | 604 | throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, "Found an action with a non-existent {0} action: {1}.", (after ? "After" : "Before"), parentActionName)); |
| 605 | } | 605 | } |
| 606 | } | 606 | } |
| 607 | else if (actionTuple == parentActionTuple || this.ContainsChildActionTuple(actionTuple, parentActionTuple)) // cycle detected | 607 | else if (actionSymbol == parentActionSymbol || this.ContainsChildActionSymbol(actionSymbol, parentActionSymbol)) // cycle detected |
| 608 | { | 608 | { |
| 609 | throw new WixException(ErrorMessages.ActionCircularDependency(actionTuple.SourceLineNumbers, actionTuple.SequenceTable.ToString(), actionTuple.Action, parentActionTuple.Action)); | 609 | throw new WixException(ErrorMessages.ActionCircularDependency(actionSymbol.SourceLineNumbers, actionSymbol.SequenceTable.ToString(), actionSymbol.Action, parentActionSymbol.Action)); |
| 610 | } | 610 | } |
| 611 | 611 | ||
| 612 | // Add this action to the appropriate list of dependent action tuples. | 612 | // Add this action to the appropriate list of dependent action symbols. |
| 613 | var relativeActions = this.GetRelativeActions(parentActionTuple); | 613 | var relativeActions = this.GetRelativeActions(parentActionSymbol); |
| 614 | var relatedTuples = (after ? relativeActions.NextActions : relativeActions.PreviousActions); | 614 | var relatedSymbols = (after ? relativeActions.NextActions : relativeActions.PreviousActions); |
| 615 | relatedTuples.Add(actionTuple); | 615 | relatedSymbols.Add(actionSymbol); |
| 616 | } | 616 | } |
| 617 | 617 | ||
| 618 | private bool ContainsChildActionTuple(WixActionTuple childTuple, WixActionTuple parentTuple) | 618 | private bool ContainsChildActionSymbol(WixActionSymbol childSymbol, WixActionSymbol parentSymbol) |
| 619 | { | 619 | { |
| 620 | var result = false; | 620 | var result = false; |
| 621 | 621 | ||
| 622 | if (this.RelativeActionsForActions.TryGetValue(childTuple.Id.Id, out var relativeActions)) | 622 | if (this.RelativeActionsForActions.TryGetValue(childSymbol.Id.Id, out var relativeActions)) |
| 623 | { | 623 | { |
| 624 | result = relativeActions.NextActions.Any(a => a.SequenceTable == parentTuple.SequenceTable && a.Id.Id == parentTuple.Id.Id) || | 624 | result = relativeActions.NextActions.Any(a => a.SequenceTable == parentSymbol.SequenceTable && a.Id.Id == parentSymbol.Id.Id) || |
| 625 | relativeActions.PreviousActions.Any(a => a.SequenceTable == parentTuple.SequenceTable && a.Id.Id == parentTuple.Id.Id); | 625 | relativeActions.PreviousActions.Any(a => a.SequenceTable == parentSymbol.SequenceTable && a.Id.Id == parentSymbol.Id.Id); |
| 626 | } | 626 | } |
| 627 | 627 | ||
| 628 | return result; | 628 | return result; |
| 629 | } | 629 | } |
| 630 | 630 | ||
| 631 | private RelativeActions GetRelativeActions(WixActionTuple action) | 631 | private RelativeActions GetRelativeActions(WixActionSymbol action) |
| 632 | { | 632 | { |
| 633 | if (!this.RelativeActionsForActions.TryGetValue(action.Id.Id, out var relativeActions)) | 633 | if (!this.RelativeActionsForActions.TryGetValue(action.Id.Id, out var relativeActions)) |
| 634 | { | 634 | { |
| @@ -639,7 +639,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 639 | return relativeActions; | 639 | return relativeActions; |
| 640 | } | 640 | } |
| 641 | 641 | ||
| 642 | private RelativeActions GetAllRelativeActionsForSequenceType(SequenceTable sequenceType, WixActionTuple action) | 642 | private RelativeActions GetAllRelativeActionsForSequenceType(SequenceTable sequenceType, WixActionSymbol action) |
| 643 | { | 643 | { |
| 644 | var relativeActions = new RelativeActions(); | 644 | var relativeActions = new RelativeActions(); |
| 645 | 645 | ||
| @@ -653,7 +653,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 653 | return relativeActions; | 653 | return relativeActions; |
| 654 | } | 654 | } |
| 655 | 655 | ||
| 656 | private void RecurseRelativeActionsForSequenceType(SequenceTable sequenceType, List<WixActionTuple> actions, List<WixActionTuple> visitedActions) | 656 | private void RecurseRelativeActionsForSequenceType(SequenceTable sequenceType, List<WixActionSymbol> actions, List<WixActionSymbol> visitedActions) |
| 657 | { | 657 | { |
| 658 | foreach (var action in actions.Where(a => a.SequenceTable == sequenceType)) | 658 | foreach (var action in actions.Where(a => a.SequenceTable == sequenceType)) |
| 659 | { | 659 | { |
| @@ -673,9 +673,9 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 673 | 673 | ||
| 674 | private class RelativeActions | 674 | private class RelativeActions |
| 675 | { | 675 | { |
| 676 | public List<WixActionTuple> PreviousActions { get; } = new List<WixActionTuple>(); | 676 | public List<WixActionSymbol> PreviousActions { get; } = new List<WixActionSymbol>(); |
| 677 | 677 | ||
| 678 | public List<WixActionTuple> NextActions { get; } = new List<WixActionTuple>(); | 678 | public List<WixActionSymbol> NextActions { get; } = new List<WixActionSymbol>(); |
| 679 | } | 679 | } |
| 680 | } | 680 | } |
| 681 | } | 681 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs index 75bcfe17..938627ed 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs | |||
| @@ -11,7 +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.Symbols; |
| 15 | using WixToolset.Extensibility.Services; | 15 | using WixToolset.Extensibility.Services; |
| 16 | 16 | ||
| 17 | /// <summary> | 17 | /// <summary> |
| @@ -43,15 +43,15 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 43 | 43 | ||
| 44 | public void Execute() | 44 | public void Execute() |
| 45 | { | 45 | { |
| 46 | var assemblyNameTuples = this.Section.Tuples.OfType<MsiAssemblyNameTuple>().ToDictionary(t => t.Id.Id); | 46 | var assemblyNameSymbols = this.Section.Symbols.OfType<MsiAssemblyNameSymbol>().ToDictionary(t => t.Id.Id); |
| 47 | 47 | ||
| 48 | foreach (var file in this.UpdateFileFacades) | 48 | foreach (var file in this.UpdateFileFacades) |
| 49 | { | 49 | { |
| 50 | this.UpdateFileFacade(file, assemblyNameTuples); | 50 | this.UpdateFileFacade(file, assemblyNameSymbols); |
| 51 | } | 51 | } |
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | private void UpdateFileFacade(FileFacade facade, Dictionary<string, MsiAssemblyNameTuple> assemblyNameTuples) | 54 | private void UpdateFileFacade(FileFacade facade, Dictionary<string, MsiAssemblyNameSymbol> assemblyNameSymbols) |
| 55 | { | 55 | { |
| 56 | FileInfo fileInfo = null; | 56 | FileInfo fileInfo = null; |
| 57 | try | 57 | try |
| @@ -155,7 +155,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 155 | 155 | ||
| 156 | if (null == facade.Hash) | 156 | if (null == facade.Hash) |
| 157 | { | 157 | { |
| 158 | facade.Hash = this.Section.AddTuple(new MsiFileHashTuple(facade.SourceLineNumber, facade.Identifier)); | 158 | facade.Hash = this.Section.AddSymbol(new MsiFileHashSymbol(facade.SourceLineNumber, facade.Identifier)); |
| 159 | } | 159 | } |
| 160 | 160 | ||
| 161 | facade.Hash.Options = 0; | 161 | facade.Hash.Options = 0; |
| @@ -220,23 +220,23 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 220 | { | 220 | { |
| 221 | var assemblyName = AssemblyNameReader.ReadAssembly(facade.SourceLineNumber, fileInfo.FullName, version); | 221 | var assemblyName = AssemblyNameReader.ReadAssembly(facade.SourceLineNumber, fileInfo.FullName, version); |
| 222 | 222 | ||
| 223 | this.SetMsiAssemblyName(assemblyNameTuples, facade, "name", assemblyName.Name); | 223 | this.SetMsiAssemblyName(assemblyNameSymbols, facade, "name", assemblyName.Name); |
| 224 | this.SetMsiAssemblyName(assemblyNameTuples, facade, "culture", assemblyName.Culture); | 224 | this.SetMsiAssemblyName(assemblyNameSymbols, facade, "culture", assemblyName.Culture); |
| 225 | this.SetMsiAssemblyName(assemblyNameTuples, facade, "version", assemblyName.Version); | 225 | this.SetMsiAssemblyName(assemblyNameSymbols, facade, "version", assemblyName.Version); |
| 226 | 226 | ||
| 227 | if (!String.IsNullOrEmpty(assemblyName.Architecture)) | 227 | if (!String.IsNullOrEmpty(assemblyName.Architecture)) |
| 228 | { | 228 | { |
| 229 | this.SetMsiAssemblyName(assemblyNameTuples, facade, "processorArchitecture", assemblyName.Architecture); | 229 | this.SetMsiAssemblyName(assemblyNameSymbols, facade, "processorArchitecture", assemblyName.Architecture); |
| 230 | } | 230 | } |
| 231 | // TODO: WiX v3 seemed to do this but not clear it should actually be done. | 231 | // TODO: WiX v3 seemed to do this but not clear it should actually be done. |
| 232 | //else if (!String.IsNullOrEmpty(file.WixFile.ProcessorArchitecture)) | 232 | //else if (!String.IsNullOrEmpty(file.WixFile.ProcessorArchitecture)) |
| 233 | //{ | 233 | //{ |
| 234 | // this.SetMsiAssemblyName(assemblyNameTuples, file, "processorArchitecture", file.WixFile.ProcessorArchitecture); | 234 | // this.SetMsiAssemblyName(assemblyNameSymbols, file, "processorArchitecture", file.WixFile.ProcessorArchitecture); |
| 235 | //} | 235 | //} |
| 236 | 236 | ||
| 237 | if (assemblyName.StrongNamedSigned) | 237 | if (assemblyName.StrongNamedSigned) |
| 238 | { | 238 | { |
| 239 | this.SetMsiAssemblyName(assemblyNameTuples, facade, "publicKeyToken", assemblyName.PublicKeyToken); | 239 | this.SetMsiAssemblyName(assemblyNameSymbols, facade, "publicKeyToken", assemblyName.PublicKeyToken); |
| 240 | } | 240 | } |
| 241 | else if (facade.AssemblyApplicationFileRef == null) | 241 | else if (facade.AssemblyApplicationFileRef == null) |
| 242 | { | 242 | { |
| @@ -245,7 +245,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 245 | 245 | ||
| 246 | if (!String.IsNullOrEmpty(assemblyName.FileVersion)) | 246 | if (!String.IsNullOrEmpty(assemblyName.FileVersion)) |
| 247 | { | 247 | { |
| 248 | this.SetMsiAssemblyName(assemblyNameTuples, facade, "fileVersion", assemblyName.FileVersion); | 248 | this.SetMsiAssemblyName(assemblyNameSymbols, facade, "fileVersion", assemblyName.FileVersion); |
| 249 | } | 249 | } |
| 250 | 250 | ||
| 251 | // add the assembly name to the information cache | 251 | // add the assembly name to the information cache |
| @@ -276,27 +276,27 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 276 | 276 | ||
| 277 | if (!String.IsNullOrEmpty(assemblyName.Name)) | 277 | if (!String.IsNullOrEmpty(assemblyName.Name)) |
| 278 | { | 278 | { |
| 279 | this.SetMsiAssemblyName(assemblyNameTuples, facade, "name", assemblyName.Name); | 279 | this.SetMsiAssemblyName(assemblyNameSymbols, facade, "name", assemblyName.Name); |
| 280 | } | 280 | } |
| 281 | 281 | ||
| 282 | if (!String.IsNullOrEmpty(assemblyName.Version)) | 282 | if (!String.IsNullOrEmpty(assemblyName.Version)) |
| 283 | { | 283 | { |
| 284 | this.SetMsiAssemblyName(assemblyNameTuples, facade, "version", assemblyName.Version); | 284 | this.SetMsiAssemblyName(assemblyNameSymbols, facade, "version", assemblyName.Version); |
| 285 | } | 285 | } |
| 286 | 286 | ||
| 287 | if (!String.IsNullOrEmpty(assemblyName.Type)) | 287 | if (!String.IsNullOrEmpty(assemblyName.Type)) |
| 288 | { | 288 | { |
| 289 | this.SetMsiAssemblyName(assemblyNameTuples, facade, "type", assemblyName.Type); | 289 | this.SetMsiAssemblyName(assemblyNameSymbols, facade, "type", assemblyName.Type); |
| 290 | } | 290 | } |
| 291 | 291 | ||
| 292 | if (!String.IsNullOrEmpty(assemblyName.Architecture)) | 292 | if (!String.IsNullOrEmpty(assemblyName.Architecture)) |
| 293 | { | 293 | { |
| 294 | this.SetMsiAssemblyName(assemblyNameTuples, facade, "processorArchitecture", assemblyName.Architecture); | 294 | this.SetMsiAssemblyName(assemblyNameSymbols, facade, "processorArchitecture", assemblyName.Architecture); |
| 295 | } | 295 | } |
| 296 | 296 | ||
| 297 | if (!String.IsNullOrEmpty(assemblyName.PublicKeyToken)) | 297 | if (!String.IsNullOrEmpty(assemblyName.PublicKeyToken)) |
| 298 | { | 298 | { |
| 299 | this.SetMsiAssemblyName(assemblyNameTuples, facade, "publicKeyToken", assemblyName.PublicKeyToken); | 299 | this.SetMsiAssemblyName(assemblyNameSymbols, facade, "publicKeyToken", assemblyName.PublicKeyToken); |
| 300 | } | 300 | } |
| 301 | } | 301 | } |
| 302 | catch (WixException e) | 302 | catch (WixException e) |
| @@ -310,11 +310,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 310 | /// Set an MsiAssemblyName row. If it was directly authored, override the value, otherwise | 310 | /// Set an MsiAssemblyName row. If it was directly authored, override the value, otherwise |
| 311 | /// create a new row. | 311 | /// create a new row. |
| 312 | /// </summary> | 312 | /// </summary> |
| 313 | /// <param name="assemblyNameTuples">MsiAssemblyName table.</param> | 313 | /// <param name="assemblyNameSymbols">MsiAssemblyName table.</param> |
| 314 | /// <param name="facade">FileFacade containing the assembly read for the MsiAssemblyName row.</param> | 314 | /// <param name="facade">FileFacade containing the assembly read for the MsiAssemblyName row.</param> |
| 315 | /// <param name="name">MsiAssemblyName name.</param> | 315 | /// <param name="name">MsiAssemblyName name.</param> |
| 316 | /// <param name="value">MsiAssemblyName value.</param> | 316 | /// <param name="value">MsiAssemblyName value.</param> |
| 317 | private void SetMsiAssemblyName(Dictionary<string, MsiAssemblyNameTuple> assemblyNameTuples, FileFacade facade, string name, string value) | 317 | private void SetMsiAssemblyName(Dictionary<string, MsiAssemblyNameSymbol> assemblyNameSymbols, FileFacade facade, string name, string value) |
| 318 | { | 318 | { |
| 319 | // check for null value (this can occur when grabbing the file version from an assembly without one) | 319 | // check for null value (this can occur when grabbing the file version from an assembly without one) |
| 320 | if (String.IsNullOrEmpty(value)) | 320 | if (String.IsNullOrEmpty(value)) |
| @@ -333,9 +333,9 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 333 | 333 | ||
| 334 | // override directly authored value | 334 | // override directly authored value |
| 335 | var lookup = String.Concat(facade.ComponentRef, "/", name); | 335 | var lookup = String.Concat(facade.ComponentRef, "/", name); |
| 336 | if (!assemblyNameTuples.TryGetValue(lookup, out var assemblyNameTuple)) | 336 | if (!assemblyNameSymbols.TryGetValue(lookup, out var assemblyNameSymbol)) |
| 337 | { | 337 | { |
| 338 | assemblyNameTuple = this.Section.AddTuple(new MsiAssemblyNameTuple(facade.SourceLineNumber, new Identifier(AccessModifier.Private, facade.ComponentRef, name)) | 338 | assemblyNameSymbol = this.Section.AddSymbol(new MsiAssemblyNameSymbol(facade.SourceLineNumber, new Identifier(AccessModifier.Private, facade.ComponentRef, name)) |
| 339 | { | 339 | { |
| 340 | ComponentRef = facade.ComponentRef, | 340 | ComponentRef = facade.ComponentRef, |
| 341 | Name = name, | 341 | Name = name, |
| @@ -344,15 +344,15 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 344 | 344 | ||
| 345 | if (null == facade.AssemblyNames) | 345 | if (null == facade.AssemblyNames) |
| 346 | { | 346 | { |
| 347 | facade.AssemblyNames = new List<MsiAssemblyNameTuple>(); | 347 | facade.AssemblyNames = new List<MsiAssemblyNameSymbol>(); |
| 348 | } | 348 | } |
| 349 | 349 | ||
| 350 | facade.AssemblyNames.Add(assemblyNameTuple); | 350 | facade.AssemblyNames.Add(assemblyNameSymbol); |
| 351 | 351 | ||
| 352 | assemblyNameTuples.Add(assemblyNameTuple.Id.Id, assemblyNameTuple); | 352 | assemblyNameSymbols.Add(assemblyNameSymbol.Id.Id, assemblyNameSymbol); |
| 353 | } | 353 | } |
| 354 | 354 | ||
| 355 | assemblyNameTuple.Value = value; | 355 | assemblyNameSymbol.Value = value; |
| 356 | 356 | ||
| 357 | if (this.VariableCache != null) | 357 | if (this.VariableCache != null) |
| 358 | { | 358 | { |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFromTextFilesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFromTextFilesCommand.cs index 4d09ff6b..66a648cc 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFromTextFilesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFromTextFilesCommand.cs | |||
| @@ -6,7 +6,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 6 | using System.IO; | 6 | using System.IO; |
| 7 | using System.Linq; | 7 | using System.Linq; |
| 8 | using WixToolset.Data; | 8 | using WixToolset.Data; |
| 9 | using WixToolset.Data.Tuples; | 9 | using WixToolset.Data.Symbols; |
| 10 | using WixToolset.Extensibility.Services; | 10 | using WixToolset.Extensibility.Services; |
| 11 | 11 | ||
| 12 | internal class UpdateFromTextFilesCommand | 12 | internal class UpdateFromTextFilesCommand |
| @@ -23,17 +23,17 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 23 | 23 | ||
| 24 | public void Execute() | 24 | public void Execute() |
| 25 | { | 25 | { |
| 26 | foreach (var bbControl in this.Section.Tuples.OfType<BBControlTuple>().Where(t => t.SourceFile != null)) | 26 | foreach (var bbControl in this.Section.Symbols.OfType<BBControlSymbol>().Where(t => t.SourceFile != null)) |
| 27 | { | 27 | { |
| 28 | bbControl.Text = this.ReadTextFile(bbControl.SourceLineNumbers, bbControl.SourceFile.Path); | 28 | bbControl.Text = this.ReadTextFile(bbControl.SourceLineNumbers, bbControl.SourceFile.Path); |
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | foreach (var control in this.Section.Tuples.OfType<ControlTuple>().Where(t => t.SourceFile != null)) | 31 | foreach (var control in this.Section.Symbols.OfType<ControlSymbol>().Where(t => t.SourceFile != null)) |
| 32 | { | 32 | { |
| 33 | control.Text = this.ReadTextFile(control.SourceLineNumbers, control.SourceFile.Path); | 33 | control.Text = this.ReadTextFile(control.SourceLineNumbers, control.SourceFile.Path); |
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | foreach (var customAction in this.Section.Tuples.OfType<CustomActionTuple>().Where(c => c.ScriptFile != null)) | 36 | foreach (var customAction in this.Section.Symbols.OfType<CustomActionSymbol>().Where(c => c.ScriptFile != null)) |
| 37 | { | 37 | { |
| 38 | customAction.Target = this.ReadTextFile(customAction.SourceLineNumbers, customAction.ScriptFile.Path); | 38 | customAction.Target = this.ReadTextFile(customAction.SourceLineNumbers, customAction.ScriptFile.Path); |
| 39 | } | 39 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateMediaSequencesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateMediaSequencesCommand.cs index bf28b279..d3f2b9ea 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateMediaSequencesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateMediaSequencesCommand.cs | |||
| @@ -6,7 +6,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 6 | using System.Linq; | 6 | using System.Linq; |
| 7 | using WixToolset.Core.Bind; | 7 | using WixToolset.Core.Bind; |
| 8 | using WixToolset.Data; | 8 | using WixToolset.Data; |
| 9 | using WixToolset.Data.Tuples; | 9 | using WixToolset.Data.Symbols; |
| 10 | 10 | ||
| 11 | internal class UpdateMediaSequencesCommand | 11 | internal class UpdateMediaSequencesCommand |
| 12 | { | 12 | { |
| @@ -22,7 +22,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 22 | 22 | ||
| 23 | public void Execute() | 23 | public void Execute() |
| 24 | { | 24 | { |
| 25 | var mediaRows = this.Section.Tuples.OfType<MediaTuple>().ToDictionary(t => t.DiskId); | 25 | var mediaRows = this.Section.Symbols.OfType<MediaSymbol>().ToDictionary(t => t.DiskId); |
| 26 | 26 | ||
| 27 | // Calculate sequence numbers and media disk id layout for all file media information objects. | 27 | // Calculate sequence numbers and media disk id layout for all file media information objects. |
| 28 | if (SectionType.Module == this.Section.Type) | 28 | if (SectionType.Module == this.Section.Type) |
| @@ -37,25 +37,25 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 37 | else | 37 | else |
| 38 | { | 38 | { |
| 39 | var lastSequence = 0; | 39 | var lastSequence = 0; |
| 40 | MediaTuple mediaTuple = null; | 40 | MediaSymbol mediaSymbol = null; |
| 41 | var patchGroups = new Dictionary<int, List<FileFacade>>(); | 41 | var patchGroups = new Dictionary<int, List<FileFacade>>(); |
| 42 | 42 | ||
| 43 | // sequence the non-patch-added files | 43 | // sequence the non-patch-added files |
| 44 | foreach (var facade in this.FileFacades) | 44 | foreach (var facade in this.FileFacades) |
| 45 | { | 45 | { |
| 46 | if (null == mediaTuple) | 46 | if (null == mediaSymbol) |
| 47 | { | 47 | { |
| 48 | mediaTuple = mediaRows[facade.DiskId]; | 48 | mediaSymbol = mediaRows[facade.DiskId]; |
| 49 | if (SectionType.Patch == this.Section.Type) | 49 | if (SectionType.Patch == this.Section.Type) |
| 50 | { | 50 | { |
| 51 | // patch Media cannot start at zero | 51 | // patch Media cannot start at zero |
| 52 | lastSequence = mediaTuple.LastSequence ?? 1; | 52 | lastSequence = mediaSymbol.LastSequence ?? 1; |
| 53 | } | 53 | } |
| 54 | } | 54 | } |
| 55 | else if (mediaTuple.DiskId != facade.DiskId) | 55 | else if (mediaSymbol.DiskId != facade.DiskId) |
| 56 | { | 56 | { |
| 57 | mediaTuple.LastSequence = lastSequence; | 57 | mediaSymbol.LastSequence = lastSequence; |
| 58 | mediaTuple = mediaRows[facade.DiskId]; | 58 | mediaSymbol = mediaRows[facade.DiskId]; |
| 59 | } | 59 | } |
| 60 | 60 | ||
| 61 | if (facade.PatchGroup.HasValue) | 61 | if (facade.PatchGroup.HasValue) |
| @@ -74,10 +74,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 74 | } | 74 | } |
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | if (null != mediaTuple) | 77 | if (null != mediaSymbol) |
| 78 | { | 78 | { |
| 79 | mediaTuple.LastSequence = lastSequence; | 79 | mediaSymbol.LastSequence = lastSequence; |
| 80 | mediaTuple = null; | 80 | mediaSymbol = null; |
| 81 | } | 81 | } |
| 82 | 82 | ||
| 83 | // sequence the patch-added files | 83 | // sequence the patch-added files |
| @@ -85,23 +85,23 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 85 | { | 85 | { |
| 86 | foreach (var facade in patchGroup) | 86 | foreach (var facade in patchGroup) |
| 87 | { | 87 | { |
| 88 | if (null == mediaTuple) | 88 | if (null == mediaSymbol) |
| 89 | { | 89 | { |
| 90 | mediaTuple = mediaRows[facade.DiskId]; | 90 | mediaSymbol = mediaRows[facade.DiskId]; |
| 91 | } | 91 | } |
| 92 | else if (mediaTuple.DiskId != facade.DiskId) | 92 | else if (mediaSymbol.DiskId != facade.DiskId) |
| 93 | { | 93 | { |
| 94 | mediaTuple.LastSequence = lastSequence; | 94 | mediaSymbol.LastSequence = lastSequence; |
| 95 | mediaTuple = mediaRows[facade.DiskId]; | 95 | mediaSymbol = mediaRows[facade.DiskId]; |
| 96 | } | 96 | } |
| 97 | 97 | ||
| 98 | facade.Sequence = ++lastSequence; | 98 | facade.Sequence = ++lastSequence; |
| 99 | } | 99 | } |
| 100 | } | 100 | } |
| 101 | 101 | ||
| 102 | if (null != mediaTuple) | 102 | if (null != mediaSymbol) |
| 103 | { | 103 | { |
| 104 | mediaTuple.LastSequence = lastSequence; | 104 | mediaSymbol.LastSequence = lastSequence; |
| 105 | } | 105 | } |
| 106 | } | 106 | } |
| 107 | } | 107 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateTransformsWithFileFacades.cs b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateTransformsWithFileFacades.cs index 2af45e77..944fb224 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateTransformsWithFileFacades.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateTransformsWithFileFacades.cs | |||
| @@ -7,7 +7,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 7 | using System.Linq; | 7 | using System.Linq; |
| 8 | using WixToolset.Core.Bind; | 8 | using WixToolset.Core.Bind; |
| 9 | using WixToolset.Data; | 9 | using WixToolset.Data; |
| 10 | using WixToolset.Data.Tuples; | 10 | using WixToolset.Data.Symbols; |
| 11 | using WixToolset.Data.WindowsInstaller; | 11 | using WixToolset.Data.WindowsInstaller; |
| 12 | using WixToolset.Data.WindowsInstaller.Rows; | 12 | using WixToolset.Data.WindowsInstaller.Rows; |
| 13 | using WixToolset.Extensibility.Services; | 13 | using WixToolset.Extensibility.Services; |
| @@ -307,9 +307,9 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 307 | ref duplicateFilesSequence); | 307 | ref duplicateFilesSequence); |
| 308 | if (!hasPatchFilesAction) | 308 | if (!hasPatchFilesAction) |
| 309 | { | 309 | { |
| 310 | WindowsInstallerStandard.TryGetStandardAction(tableName, "PatchFiles", out var patchFilesActionTuple); | 310 | WindowsInstallerStandard.TryGetStandardAction(tableName, "PatchFiles", out var patchFilesActionSymbol); |
| 311 | 311 | ||
| 312 | var sequence = patchFilesActionTuple.Sequence; | 312 | var sequence = patchFilesActionSymbol.Sequence; |
| 313 | 313 | ||
| 314 | // Test for default sequence value's appropriateness | 314 | // Test for default sequence value's appropriateness |
| 315 | if (installFilesSequence >= sequence || (0 != duplicateFilesSequence && duplicateFilesSequence <= sequence)) | 315 | if (installFilesSequence >= sequence || (0 != duplicateFilesSequence && duplicateFilesSequence <= sequence)) |
| @@ -318,14 +318,14 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 318 | { | 318 | { |
| 319 | if (duplicateFilesSequence < installFilesSequence) | 319 | if (duplicateFilesSequence < installFilesSequence) |
| 320 | { | 320 | { |
| 321 | throw new WixException(ErrorMessages.InsertInvalidSequenceActionOrder(mainFileRow.SourceLineNumbers, tableName, "InstallFiles", "DuplicateFiles", patchFilesActionTuple.Action)); | 321 | throw new WixException(ErrorMessages.InsertInvalidSequenceActionOrder(mainFileRow.SourceLineNumbers, tableName, "InstallFiles", "DuplicateFiles", patchFilesActionSymbol.Action)); |
| 322 | } | 322 | } |
| 323 | else | 323 | else |
| 324 | { | 324 | { |
| 325 | sequence = (duplicateFilesSequence + installFilesSequence) / 2; | 325 | sequence = (duplicateFilesSequence + installFilesSequence) / 2; |
| 326 | if (installFilesSequence == sequence || duplicateFilesSequence == sequence) | 326 | if (installFilesSequence == sequence || duplicateFilesSequence == sequence) |
| 327 | { | 327 | { |
| 328 | throw new WixException(ErrorMessages.InsertSequenceNoSpace(mainFileRow.SourceLineNumbers, tableName, "InstallFiles", "DuplicateFiles", patchFilesActionTuple.Action)); | 328 | throw new WixException(ErrorMessages.InsertSequenceNoSpace(mainFileRow.SourceLineNumbers, tableName, "InstallFiles", "DuplicateFiles", patchFilesActionSymbol.Action)); |
| 329 | } | 329 | } |
| 330 | } | 330 | } |
| 331 | } | 331 | } |
| @@ -342,8 +342,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 342 | } | 342 | } |
| 343 | 343 | ||
| 344 | var patchAction = sequenceTable.CreateRow(null); | 344 | var patchAction = sequenceTable.CreateRow(null); |
| 345 | patchAction[0] = patchFilesActionTuple.Action; | 345 | patchAction[0] = patchFilesActionSymbol.Action; |
| 346 | patchAction[1] = patchFilesActionTuple.Condition; | 346 | patchAction[1] = patchFilesActionSymbol.Condition; |
| 347 | patchAction[2] = sequence; | 347 | patchAction[2] = sequence; |
| 348 | patchAction.Operation = RowOperation.Add; | 348 | patchAction.Operation = RowOperation.Add; |
| 349 | } | 349 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/ValidateComponentGuidsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/ValidateComponentGuidsCommand.cs index 020a83fc..5cad9247 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/ValidateComponentGuidsCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/ValidateComponentGuidsCommand.cs | |||
| @@ -6,7 +6,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 6 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 7 | using System.Linq; | 7 | using System.Linq; |
| 8 | using WixToolset.Data; | 8 | using WixToolset.Data; |
| 9 | using WixToolset.Data.Tuples; | 9 | using WixToolset.Data.Symbols; |
| 10 | using WixToolset.Extensibility.Services; | 10 | using WixToolset.Extensibility.Services; |
| 11 | 11 | ||
| 12 | /// <summary> | 12 | /// <summary> |
| @@ -32,30 +32,30 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 32 | { | 32 | { |
| 33 | var componentGuidConditions = new Dictionary<string, bool>(); | 33 | var componentGuidConditions = new Dictionary<string, bool>(); |
| 34 | 34 | ||
| 35 | foreach (var componentTuple in this.Section.Tuples.OfType<ComponentTuple>()) | 35 | foreach (var componentSymbol in this.Section.Symbols.OfType<ComponentSymbol>()) |
| 36 | { | 36 | { |
| 37 | // We don't care about unmanaged components and if there's a * GUID remaining, | 37 | // We don't care about unmanaged components and if there's a * GUID remaining, |
| 38 | // there's already an error that prevented it from being replaced with a real GUID. | 38 | // there's already an error that prevented it from being replaced with a real GUID. |
| 39 | if (!String.IsNullOrEmpty(componentTuple.ComponentId) && "*" != componentTuple.ComponentId) | 39 | if (!String.IsNullOrEmpty(componentSymbol.ComponentId) && "*" != componentSymbol.ComponentId) |
| 40 | { | 40 | { |
| 41 | var thisComponentHasCondition = !String.IsNullOrEmpty(componentTuple.Condition); | 41 | var thisComponentHasCondition = !String.IsNullOrEmpty(componentSymbol.Condition); |
| 42 | var allComponentsHaveConditions = thisComponentHasCondition; | 42 | var allComponentsHaveConditions = thisComponentHasCondition; |
| 43 | 43 | ||
| 44 | if (componentGuidConditions.TryGetValue(componentTuple.ComponentId, out var alreadyCheckedCondition)) | 44 | if (componentGuidConditions.TryGetValue(componentSymbol.ComponentId, out var alreadyCheckedCondition)) |
| 45 | { | 45 | { |
| 46 | allComponentsHaveConditions = thisComponentHasCondition && alreadyCheckedCondition; | 46 | allComponentsHaveConditions = thisComponentHasCondition && alreadyCheckedCondition; |
| 47 | 47 | ||
| 48 | if (allComponentsHaveConditions) | 48 | if (allComponentsHaveConditions) |
| 49 | { | 49 | { |
| 50 | this.Messaging.Write(WarningMessages.DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions(componentTuple.SourceLineNumbers, componentTuple.Id.Id, componentTuple.ComponentId)); | 50 | this.Messaging.Write(WarningMessages.DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions(componentSymbol.SourceLineNumbers, componentSymbol.Id.Id, componentSymbol.ComponentId)); |
| 51 | } | 51 | } |
| 52 | else | 52 | else |
| 53 | { | 53 | { |
| 54 | this.Messaging.Write(ErrorMessages.DuplicateComponentGuids(componentTuple.SourceLineNumbers, componentTuple.Id.Id, componentTuple.ComponentId)); | 54 | this.Messaging.Write(ErrorMessages.DuplicateComponentGuids(componentSymbol.SourceLineNumbers, componentSymbol.Id.Id, componentSymbol.ComponentId)); |
| 55 | } | 55 | } |
| 56 | } | 56 | } |
| 57 | 57 | ||
| 58 | componentGuidConditions[componentTuple.ComponentId] = allComponentsHaveConditions; | 58 | componentGuidConditions[componentSymbol.ComponentId] = allComponentsHaveConditions; |
| 59 | } | 59 | } |
| 60 | } | 60 | } |
| 61 | } | 61 | } |
