From 3051bf2fc300df125115c9538a0bfc8256bfde6a Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 22 May 2019 16:28:02 -0700 Subject: Integrate short and source name changes to Directory and Shortcut tuples --- .../Bind/CalculateComponentGuids.cs | 7 ++-- .../Bind/CreateOutputFromIRCommand.cs | 38 ++++++++++++++++++++-- 2 files changed, 38 insertions(+), 7 deletions(-) (limited to 'src/WixToolset.Core.WindowsInstaller') diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CalculateComponentGuids.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CalculateComponentGuids.cs index f66ff375..835d9b8d 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CalculateComponentGuids.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CalculateComponentGuids.cs @@ -76,18 +76,17 @@ namespace WixToolset.Core.WindowsInstaller.Bind targetPathsByDirectoryId = new Dictionary(directories.Count); // Get the target paths for all directories. - foreach (var row in directories) + foreach (var directory in directories) { // If the directory Id already exists, we will skip it here since // checking for duplicate primary keys is done later when importing tables // into database - if (targetPathsByDirectoryId.ContainsKey(row.Id.Id)) + if (targetPathsByDirectoryId.ContainsKey(directory.Id.Id)) { continue; } - var targetName = Common.GetName(row.DefaultDir, false, true); - targetPathsByDirectoryId.Add(row.Id.Id, new ResolvedDirectory(row.ParentDirectoryRef, targetName)); + targetPathsByDirectoryId.Add(directory.Id.Id, new ResolvedDirectory(directory.ParentDirectoryRef, directory.Name)); } } diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs index 65958d0a..57861502 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs @@ -146,7 +146,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind break; case TupleDefinitionType.Shortcut: - this.AddTupleDefaultly(tuple, output, true); + this.AddShortcutTuple((ShortcutTuple)tuple, output); break; case TupleDefinitionType.TextStyle: @@ -338,11 +338,21 @@ namespace WixToolset.Core.WindowsInstaller.Bind private void AddDirectoryTuple(DirectoryTuple tuple, Output output) { + var shortName = GetMsiFilenameValue(tuple.SourceShortName, tuple.SourceName); + var targetName = GetMsiFilenameValue(tuple.ShortName, tuple.Name); + + if (String.IsNullOrEmpty(targetName)) + { + targetName = "."; + } + + var defaultDir = String.IsNullOrEmpty(shortName)? targetName : shortName + ":" + targetName; + var table = output.EnsureTable(this.TableDefinitions["Directory"]); var row = table.CreateRow(tuple.SourceLineNumbers); row[0] = tuple.Id.Id; row[1] = tuple.ParentDirectoryRef; - row[2] = tuple.DefaultDir; + row[2] = defaultDir; } private void AddEnvironmentTuple(EnvironmentTuple tuple, Output output) @@ -447,7 +457,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind var table = output.EnsureTable(this.TableDefinitions["Media"]); var row = (MediaRow)table.CreateRow(tuple.SourceLineNumbers); row.DiskId = tuple.DiskId; - row.LastSequence = tuple.LastSequence; + row.LastSequence = tuple.LastSequence ?? 0; row.DiskPrompt = tuple.DiskPrompt; row.Cabinet = tuple.Cabinet; row.VolumeLabel = tuple.VolumeLabel; @@ -695,6 +705,28 @@ namespace WixToolset.Core.WindowsInstaller.Bind row[12] = tuple.Description; } + private void AddShortcutTuple(ShortcutTuple tuple, Output output) + { + var table = output.EnsureTable(this.TableDefinitions["Shortcut"]); + var row = table.CreateRow(tuple.SourceLineNumbers); + row[0] = tuple.Id.Id; + row[1] = tuple.DirectoryRef; + row[2] = GetMsiFilenameValue(tuple.ShortName, tuple.Name); + row[3] = tuple.ComponentRef; + row[4] = tuple.Target; + row[5] = tuple.Arguments; + row[6] = tuple.Description; + row[7] = tuple.Hotkey; + row[8] = tuple.IconRef; + row[9] = tuple.IconIndex; + row[10] = (int)tuple.Show; + row[11] = tuple.WorkingDirectory; + row[12] = tuple.DisplayResourceDll; + row[13] = tuple.DisplayResourceId; + row[14] = tuple.DescriptionResourceDll; + row[15] = tuple.DescriptionResourceId; + } + private void AddTextStyleTuple(TextStyleTuple tuple, Output output) { var styleBits = tuple.Bold ? WindowsInstallerConstants.MsidbTextStyleStyleBitsBold : 0; -- cgit v1.2.3-55-g6feb