diff options
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller')
15 files changed, 164 insertions, 114 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs index 410e462a..2f161305 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs | |||
@@ -22,31 +22,27 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
22 | // As outlined in RFC 4122, this is our namespace for generating name-based (version 3) UUIDs. | 22 | // As outlined in RFC 4122, this is our namespace for generating name-based (version 3) UUIDs. |
23 | internal static readonly Guid WixComponentGuidNamespace = new Guid("{3064E5C6-FB63-4FE9-AC49-E446A792EFA5}"); | 23 | internal static readonly Guid WixComponentGuidNamespace = new Guid("{3064E5C6-FB63-4FE9-AC49-E446A792EFA5}"); |
24 | 24 | ||
25 | public BindDatabaseCommand(IBindContext context, IEnumerable<IWindowsInstallerBackendExtension> backendExtension, Validator validator) | 25 | public BindDatabaseCommand(WixToolset.Extensibility.IBindContext context, IEnumerable<IWindowsInstallerBackendExtension> backendExtension, Validator validator) |
26 | { | 26 | { |
27 | this.TableDefinitions = WindowsInstallerStandardInternal.GetTableDefinitions(); | 27 | this.TableDefinitions = WindowsInstallerStandardInternal.GetTableDefinitions(); |
28 | 28 | ||
29 | this.BindPaths = context.BindPaths; | ||
30 | this.CabbingThreadCount = context.CabbingThreadCount; | 29 | this.CabbingThreadCount = context.CabbingThreadCount; |
31 | this.CabCachePath = context.CabCachePath; | 30 | this.CabCachePath = context.CabCachePath; |
32 | this.Codepage = context.Codepage; | 31 | this.Codepage = context.Codepage; |
33 | this.DefaultCompressionLevel = context.DefaultCompressionLevel; | 32 | this.DefaultCompressionLevel = context.DefaultCompressionLevel; |
34 | this.DelayedFields = context.DelayedFields; | 33 | this.DelayedFields = context.DelayedFields; |
35 | this.ExpectedEmbeddedFiles = context.ExpectedEmbeddedFiles; | 34 | this.ExpectedEmbeddedFiles = context.ExpectedEmbeddedFiles; |
36 | this.Extensions = context.Extensions; | 35 | this.FileSystemExtensions = context.FileSystemExtensions; |
37 | this.Intermediate = context.IntermediateRepresentation; | 36 | this.Intermediate = context.IntermediateRepresentation; |
38 | this.Messaging = context.Messaging; | 37 | this.Messaging = context.Messaging; |
39 | this.OutputPath = context.OutputPath; | 38 | this.OutputPath = context.OutputPath; |
40 | this.PdbFile = context.OutputPdbPath; | 39 | this.PdbFile = context.OutputPdbPath; |
41 | this.IntermediateFolder = context.IntermediateFolder; | 40 | this.IntermediateFolder = context.IntermediateFolder; |
42 | this.Validator = validator; | 41 | this.Validator = validator; |
43 | this.WixVariableResolver = context.WixVariableResolver; | 42 | |
44 | |||
45 | this.BackendExtensions = backendExtension; | 43 | this.BackendExtensions = backendExtension; |
46 | } | 44 | } |
47 | 45 | ||
48 | private IEnumerable<BindPath> BindPaths { get; } | ||
49 | |||
50 | private int Codepage { get; } | 46 | private int Codepage { get; } |
51 | 47 | ||
52 | private int CabbingThreadCount { get; } | 48 | private int CabbingThreadCount { get; } |
@@ -59,12 +55,12 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
59 | 55 | ||
60 | public IEnumerable<IExpectedExtractFile> ExpectedEmbeddedFiles { get; } | 56 | public IEnumerable<IExpectedExtractFile> ExpectedEmbeddedFiles { get; } |
61 | 57 | ||
58 | public IEnumerable<IFileSystemExtension> FileSystemExtensions { get; } | ||
59 | |||
62 | public bool DeltaBinaryPatch { get; set; } | 60 | public bool DeltaBinaryPatch { get; set; } |
63 | 61 | ||
64 | private IEnumerable<IWindowsInstallerBackendExtension> BackendExtensions { get; } | 62 | private IEnumerable<IWindowsInstallerBackendExtension> BackendExtensions { get; } |
65 | 63 | ||
66 | private IEnumerable<IBinderExtension> Extensions { get; } | ||
67 | |||
68 | private string PdbFile { get; } | 64 | private string PdbFile { get; } |
69 | 65 | ||
70 | private Intermediate Intermediate { get; } | 66 | private Intermediate Intermediate { get; } |
@@ -83,7 +79,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
83 | 79 | ||
84 | private Validator Validator { get; } | 80 | private Validator Validator { get; } |
85 | 81 | ||
86 | private IBindVariableResolver WixVariableResolver { get; } | ||
87 | 82 | ||
88 | public IEnumerable<FileTransfer> FileTransfers { get; private set; } | 83 | public IEnumerable<FileTransfer> FileTransfers { get; private set; } |
89 | 84 | ||
@@ -100,8 +95,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
100 | // If there are any fields to resolve later, create the cache to populate during bind. | 95 | // If there are any fields to resolve later, create the cache to populate during bind. |
101 | var variableCache = this.DelayedFields.Any() ? new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase) : null; | 96 | var variableCache = this.DelayedFields.Any() ? new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase) : null; |
102 | 97 | ||
103 | this.LocalizeUI(section); | ||
104 | |||
105 | // Process the summary information table before the other tables. | 98 | // Process the summary information table before the other tables. |
106 | bool compressed; | 99 | bool compressed; |
107 | bool longNames; | 100 | bool longNames; |
@@ -534,85 +527,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
534 | intermediate.Save(Path.ChangeExtension(this.OutputPath, "wir")); | 527 | intermediate.Save(Path.ChangeExtension(this.OutputPath, "wir")); |
535 | } | 528 | } |
536 | 529 | ||
537 | /// <summary> | ||
538 | /// Localize dialogs and controls. | ||
539 | /// </summary> | ||
540 | /// <param name="tables">The tables to localize.</param> | ||
541 | private void LocalizeUI(IntermediateSection section) | ||
542 | { | ||
543 | foreach (var row in section.Tuples.OfType<DialogTuple>()) | ||
544 | { | ||
545 | string dialog = row.Dialog; | ||
546 | |||
547 | if (this.WixVariableResolver.TryGetLocalizedControl(dialog, null, out LocalizedControl localizedControl)) | ||
548 | { | ||
549 | if (CompilerConstants.IntegerNotSet != localizedControl.X) | ||
550 | { | ||
551 | row.HCentering = localizedControl.X; | ||
552 | } | ||
553 | |||
554 | if (CompilerConstants.IntegerNotSet != localizedControl.Y) | ||
555 | { | ||
556 | row.VCentering = localizedControl.Y; | ||
557 | } | ||
558 | |||
559 | if (CompilerConstants.IntegerNotSet != localizedControl.Width) | ||
560 | { | ||
561 | row.Width = localizedControl.Width; | ||
562 | } | ||
563 | |||
564 | if (CompilerConstants.IntegerNotSet != localizedControl.Height) | ||
565 | { | ||
566 | row.Height = localizedControl.Height; | ||
567 | } | ||
568 | |||
569 | row.Attributes = row.Attributes | localizedControl.Attributes; | ||
570 | |||
571 | if (!String.IsNullOrEmpty(localizedControl.Text)) | ||
572 | { | ||
573 | row.Title = localizedControl.Text; | ||
574 | } | ||
575 | } | ||
576 | } | ||
577 | |||
578 | |||
579 | foreach (var row in section.Tuples.OfType<ControlTuple>()) | ||
580 | { | ||
581 | string dialog = row.Dialog_; | ||
582 | string control = row.Control; | ||
583 | |||
584 | if (this.WixVariableResolver.TryGetLocalizedControl(dialog, control, out LocalizedControl localizedControl)) | ||
585 | { | ||
586 | if (CompilerConstants.IntegerNotSet != localizedControl.X) | ||
587 | { | ||
588 | row.X = localizedControl.X; | ||
589 | } | ||
590 | |||
591 | if (CompilerConstants.IntegerNotSet != localizedControl.Y) | ||
592 | { | ||
593 | row.Y = localizedControl.Y; | ||
594 | } | ||
595 | |||
596 | if (CompilerConstants.IntegerNotSet != localizedControl.Width) | ||
597 | { | ||
598 | row.Width = localizedControl.Width; | ||
599 | } | ||
600 | |||
601 | if (CompilerConstants.IntegerNotSet != localizedControl.Height) | ||
602 | { | ||
603 | row.Height = localizedControl.Height; | ||
604 | } | ||
605 | |||
606 | row.Attributes = row.Attributes | localizedControl.Attributes; | ||
607 | |||
608 | if (!String.IsNullOrEmpty(localizedControl.Text)) | ||
609 | { | ||
610 | row.Text = localizedControl.Text; | ||
611 | } | ||
612 | } | ||
613 | } | ||
614 | } | ||
615 | |||
616 | #if TODO_FINISH_PATCH | 530 | #if TODO_FINISH_PATCH |
617 | /// <summary> | 531 | /// <summary> |
618 | /// Copy file data between transform substorages and the patch output object | 532 | /// Copy file data between transform substorages and the patch output object |
@@ -984,7 +898,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
984 | private void GenerateDatabase(Output output, string databaseFile, bool keepAddedColumns, bool useSubdirectory) | 898 | private void GenerateDatabase(Output output, string databaseFile, bool keepAddedColumns, bool useSubdirectory) |
985 | { | 899 | { |
986 | var command = new GenerateDatabaseCommand(); | 900 | var command = new GenerateDatabaseCommand(); |
987 | command.Extensions = this.Extensions; | 901 | command.Extensions = this.FileSystemExtensions; |
988 | command.Output = output; | 902 | command.Output = output; |
989 | command.OutputPath = databaseFile; | 903 | command.OutputPath = databaseFile; |
990 | command.KeepAddedColumns = keepAddedColumns; | 904 | command.KeepAddedColumns = keepAddedColumns; |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindTransformCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindTransformCommand.cs index 800ebac0..8cb0e0de 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/BindTransformCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindTransformCommand.cs | |||
@@ -15,7 +15,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
15 | 15 | ||
16 | internal class BindTransformCommand | 16 | internal class BindTransformCommand |
17 | { | 17 | { |
18 | public IEnumerable<IBinderExtension> Extensions { private get; set; } | 18 | public IEnumerable<IFileSystemExtension> Extensions { private get; set; } |
19 | 19 | ||
20 | public TableDefinitionCollection TableDefinitions { private get; set; } | 20 | public TableDefinitionCollection TableDefinitions { private get; set; } |
21 | 21 | ||
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CalculateComponentGuids.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CalculateComponentGuids.cs index 056f92a7..76747728 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CalculateComponentGuids.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CalculateComponentGuids.cs | |||
@@ -6,7 +6,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
6 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
7 | using System.IO; | 7 | using System.IO; |
8 | using System.Linq; | 8 | using System.Linq; |
9 | using WixToolset.Bind; | ||
10 | using WixToolset.Core.Native; | 9 | using WixToolset.Core.Native; |
11 | using WixToolset.Data; | 10 | using WixToolset.Data; |
12 | using WixToolset.Data.Tuples; | 11 | using WixToolset.Data.Tuples; |
@@ -135,7 +134,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
135 | if (fileRow.File == componentRow.KeyPath) | 134 | if (fileRow.File == componentRow.KeyPath) |
136 | { | 135 | { |
137 | // calculate the key file's canonical target path | 136 | // calculate the key file's canonical target path |
138 | string directoryPath = Binder.GetDirectoryPath(targetPathsByDirectoryId, componentIdGenSeeds, componentRow.Directory_, true); | 137 | string directoryPath = PathResolver.GetDirectoryPath(targetPathsByDirectoryId, componentIdGenSeeds, componentRow.Directory_, true); |
139 | string fileName = Common.GetName(fileRow.LongFileName, false, true).ToLowerInvariant(); | 138 | string fileName = Common.GetName(fileRow.LongFileName, false, true).ToLowerInvariant(); |
140 | path = Path.Combine(directoryPath, fileName); | 139 | path = Path.Combine(directoryPath, fileName); |
141 | 140 | ||
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CopyTransformDataCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CopyTransformDataCommand.cs index 13408312..6ff03941 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CopyTransformDataCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CopyTransformDataCommand.cs | |||
@@ -18,7 +18,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
18 | { | 18 | { |
19 | public bool CopyOutFileRows { private get; set; } | 19 | public bool CopyOutFileRows { private get; set; } |
20 | 20 | ||
21 | public IEnumerable<IBinderExtension> Extensions { private get; set; } | 21 | public IEnumerable<IFileSystemExtension> Extensions { private get; set; } |
22 | 22 | ||
23 | public IMessaging Messaging { private get; set; } | 23 | public IMessaging Messaging { private get; set; } |
24 | 24 | ||
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/GenerateDatabaseCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/GenerateDatabaseCommand.cs index ee7cc61b..cc920ac2 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/GenerateDatabaseCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/GenerateDatabaseCommand.cs | |||
@@ -19,7 +19,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
19 | { | 19 | { |
20 | public int Codepage { private get; set; } | 20 | public int Codepage { private get; set; } |
21 | 21 | ||
22 | public IEnumerable<IBinderExtension> Extensions { private get; set; } | 22 | public IEnumerable<IFileSystemExtension> Extensions { private get; set; } |
23 | 23 | ||
24 | /// <summary> | 24 | /// <summary> |
25 | /// Whether to keep columns added in a transform. | 25 | /// Whether to keep columns added in a transform. |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/PathResolver.cs b/src/WixToolset.Core.WindowsInstaller/Bind/PathResolver.cs new file mode 100644 index 00000000..492c9137 --- /dev/null +++ b/src/WixToolset.Core.WindowsInstaller/Bind/PathResolver.cs | |||
@@ -0,0 +1,105 @@ | |||
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | ||
2 | |||
3 | namespace WixToolset.Core.WindowsInstaller.Bind | ||
4 | { | ||
5 | using System; | ||
6 | using System.Collections.Generic; | ||
7 | using System.IO; | ||
8 | using WixToolset.Data; | ||
9 | |||
10 | internal static class PathResolver | ||
11 | { | ||
12 | /// <summary> | ||
13 | /// Get the source path of a directory. | ||
14 | /// </summary> | ||
15 | /// <param name="directories">All cached directories.</param> | ||
16 | /// <param name="componentIdGenSeeds">Hash table of Component GUID generation seeds indexed by directory id.</param> | ||
17 | /// <param name="directory">Directory identifier.</param> | ||
18 | /// <param name="canonicalize">Canonicalize the path for standard directories.</param> | ||
19 | /// <returns>Source path of a directory.</returns> | ||
20 | public static string GetDirectoryPath(Dictionary<string, ResolvedDirectory> directories, Dictionary<string, string> componentIdGenSeeds, string directory, bool canonicalize) | ||
21 | { | ||
22 | if (!directories.TryGetValue(directory, out var resolvedDirectory)) | ||
23 | { | ||
24 | throw new WixException(ErrorMessages.ExpectedDirectory(directory)); | ||
25 | } | ||
26 | |||
27 | if (null == resolvedDirectory.Path) | ||
28 | { | ||
29 | if (null != componentIdGenSeeds && componentIdGenSeeds.ContainsKey(directory)) | ||
30 | { | ||
31 | resolvedDirectory.Path = (string)componentIdGenSeeds[directory]; | ||
32 | } | ||
33 | else if (canonicalize && WindowsInstallerStandard.IsStandardDirectory(directory)) | ||
34 | { | ||
35 | // when canonicalization is on, standard directories are treated equally | ||
36 | resolvedDirectory.Path = directory; | ||
37 | } | ||
38 | else | ||
39 | { | ||
40 | string name = resolvedDirectory.Name; | ||
41 | |||
42 | if (canonicalize) | ||
43 | { | ||
44 | name = name?.ToLowerInvariant(); | ||
45 | } | ||
46 | |||
47 | if (String.IsNullOrEmpty(resolvedDirectory.DirectoryParent)) | ||
48 | { | ||
49 | resolvedDirectory.Path = name; | ||
50 | } | ||
51 | else | ||
52 | { | ||
53 | string parentPath = GetDirectoryPath(directories, componentIdGenSeeds, resolvedDirectory.DirectoryParent, canonicalize); | ||
54 | |||
55 | if (null != resolvedDirectory.Name) | ||
56 | { | ||
57 | resolvedDirectory.Path = Path.Combine(parentPath, name); | ||
58 | } | ||
59 | else | ||
60 | { | ||
61 | resolvedDirectory.Path = parentPath; | ||
62 | } | ||
63 | } | ||
64 | } | ||
65 | } | ||
66 | |||
67 | return resolvedDirectory.Path; | ||
68 | } | ||
69 | |||
70 | /// <summary> | ||
71 | /// Gets the source path of a file. | ||
72 | /// </summary> | ||
73 | /// <param name="directories">All cached directories in <see cref="ResolvedDirectory"/>.</param> | ||
74 | /// <param name="directoryId">Parent directory identifier.</param> | ||
75 | /// <param name="fileName">File name (in long|source format).</param> | ||
76 | /// <param name="compressed">Specifies the package is compressed.</param> | ||
77 | /// <param name="useLongName">Specifies the package uses long file names.</param> | ||
78 | /// <returns>Source path of file relative to package directory.</returns> | ||
79 | public static string GetFileSourcePath(Dictionary<string, ResolvedDirectory> directories, string directoryId, string fileName, bool compressed, bool useLongName) | ||
80 | { | ||
81 | string fileSourcePath = Common.GetName(fileName, true, useLongName); | ||
82 | |||
83 | if (compressed) | ||
84 | { | ||
85 | // Use just the file name of the file since all uncompressed files must appear | ||
86 | // in the root of the image in a compressed package. | ||
87 | } | ||
88 | else | ||
89 | { | ||
90 | // Get the relative path of where we want the file to be layed out as specified | ||
91 | // in the Directory table. | ||
92 | string directoryPath = PathResolver.GetDirectoryPath(directories, null, directoryId, false); | ||
93 | fileSourcePath = Path.Combine(directoryPath, fileSourcePath); | ||
94 | } | ||
95 | |||
96 | // Strip off "SourceDir" if it's still on there. | ||
97 | if (fileSourcePath.StartsWith("SourceDir\\", StringComparison.Ordinal)) | ||
98 | { | ||
99 | fileSourcePath = fileSourcePath.Substring(10); | ||
100 | } | ||
101 | |||
102 | return fileSourcePath; | ||
103 | } | ||
104 | } | ||
105 | } | ||
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/ProcessUncompressedFilesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/ProcessUncompressedFilesCommand.cs index e1a26a67..39771508 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/ProcessUncompressedFilesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/ProcessUncompressedFilesCommand.cs | |||
@@ -5,14 +5,13 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
5 | using System; | 5 | using System; |
6 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
7 | using System.IO; | 7 | using System.IO; |
8 | using WixToolset.Data; | 8 | using System.Linq; |
9 | using WixToolset.Msi; | ||
10 | using WixToolset.Core.Native; | ||
11 | using WixToolset.Bind; | ||
12 | using WixToolset.Core.Bind; | 9 | using WixToolset.Core.Bind; |
10 | using WixToolset.Core.Native; | ||
11 | using WixToolset.Data; | ||
13 | using WixToolset.Data.Bind; | 12 | using WixToolset.Data.Bind; |
14 | using WixToolset.Data.Tuples; | 13 | using WixToolset.Data.Tuples; |
15 | using System.Linq; | 14 | using WixToolset.Msi; |
16 | 15 | ||
17 | /// <summary> | 16 | /// <summary> |
18 | /// Defines the file transfers necessary to layout the uncompressed files. | 17 | /// Defines the file transfers necessary to layout the uncompressed files. |
@@ -100,7 +99,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
100 | throw new WixException(ErrorMessages.FileIdentifierNotFound(facade.File.SourceLineNumbers, facade.File.File)); | 99 | throw new WixException(ErrorMessages.FileIdentifierNotFound(facade.File.SourceLineNumbers, facade.File.File)); |
101 | } | 100 | } |
102 | 101 | ||
103 | relativeFileLayoutPath = Binder.GetFileSourcePath(directories, fileRecord[1], fileRecord[2], this.Compressed, this.LongNamesInImage); | 102 | relativeFileLayoutPath = PathResolver.GetFileSourcePath(directories, fileRecord[1], fileRecord[2], this.Compressed, this.LongNamesInImage); |
104 | } | 103 | } |
105 | 104 | ||
106 | // finally put together the base media layout path and the relative file layout path | 105 | // finally put together the base media layout path and the relative file layout path |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/ResolvedDirectory.cs b/src/WixToolset.Core.WindowsInstaller/Bind/ResolvedDirectory.cs new file mode 100644 index 00000000..e06321cf --- /dev/null +++ b/src/WixToolset.Core.WindowsInstaller/Bind/ResolvedDirectory.cs | |||
@@ -0,0 +1,31 @@ | |||
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | ||
2 | |||
3 | namespace WixToolset.Core.WindowsInstaller.Bind | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Structure used for resolved directory information. | ||
7 | /// </summary> | ||
8 | internal struct ResolvedDirectory | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Constructor for ResolvedDirectory. | ||
12 | /// </summary> | ||
13 | /// <param name="directoryParent">Parent directory.</param> | ||
14 | /// <param name="name">The directory name.</param> | ||
15 | public ResolvedDirectory(string directoryParent, string name) | ||
16 | { | ||
17 | this.DirectoryParent = directoryParent; | ||
18 | this.Name = name; | ||
19 | this.Path = null; | ||
20 | } | ||
21 | |||
22 | /// <summary>The directory parent.</summary> | ||
23 | public string DirectoryParent { get; set; } | ||
24 | |||
25 | /// <summary>The name of this directory.</summary> | ||
26 | public string Name { get; set; } | ||
27 | |||
28 | /// <summary>The path of this directory.</summary> | ||
29 | public string Path { get; set; } | ||
30 | } | ||
31 | } | ||
diff --git a/src/WixToolset.Core.WindowsInstaller/MsiBackend.cs b/src/WixToolset.Core.WindowsInstaller/MsiBackend.cs index 4753677a..00f09db3 100644 --- a/src/WixToolset.Core.WindowsInstaller/MsiBackend.cs +++ b/src/WixToolset.Core.WindowsInstaller/MsiBackend.cs | |||
@@ -12,9 +12,11 @@ namespace WixToolset.Core.WindowsInstaller | |||
12 | 12 | ||
13 | internal class MsiBackend : IBackend | 13 | internal class MsiBackend : IBackend |
14 | { | 14 | { |
15 | public BindResult Bind(IBindContext context) | 15 | public BindResult Bind(WixToolset.Extensibility.IBindContext context) |
16 | { | 16 | { |
17 | var backendExtensions = context.ExtensionManager.Create<IWindowsInstallerBackendExtension>(); | 17 | var extensionManager = context.ServiceProvider.GetService<IExtensionManager>(); |
18 | |||
19 | var backendExtensions = extensionManager.Create<IWindowsInstallerBackendExtension>(); | ||
18 | 20 | ||
19 | foreach (var extension in backendExtensions) | 21 | foreach (var extension in backendExtensions) |
20 | { | 22 | { |
@@ -26,7 +28,7 @@ namespace WixToolset.Core.WindowsInstaller | |||
26 | var command = new BindDatabaseCommand(context, backendExtensions, validator); | 28 | var command = new BindDatabaseCommand(context, backendExtensions, validator); |
27 | command.Execute(); | 29 | command.Execute(); |
28 | 30 | ||
29 | var result = new BindResult(command.FileTransfers, command.ContentFilePaths); | 31 | var result = new BindResult { FileTransfers = command.FileTransfers, ContentFilePaths = command.ContentFilePaths }; |
30 | 32 | ||
31 | foreach (var extension in backendExtensions) | 33 | foreach (var extension in backendExtensions) |
32 | { | 34 | { |
diff --git a/src/WixToolset.Core.WindowsInstaller/MsmBackend.cs b/src/WixToolset.Core.WindowsInstaller/MsmBackend.cs index 2323f8dd..9c70860e 100644 --- a/src/WixToolset.Core.WindowsInstaller/MsmBackend.cs +++ b/src/WixToolset.Core.WindowsInstaller/MsmBackend.cs | |||
@@ -11,9 +11,11 @@ namespace WixToolset.Core.WindowsInstaller | |||
11 | 11 | ||
12 | internal class MsmBackend : IBackend | 12 | internal class MsmBackend : IBackend |
13 | { | 13 | { |
14 | public BindResult Bind(IBindContext context) | 14 | public BindResult Bind(WixToolset.Extensibility.IBindContext context) |
15 | { | 15 | { |
16 | var backendExtensions = context.ExtensionManager.Create<IWindowsInstallerBackendExtension>(); | 16 | var extensionManager = context.ServiceProvider.GetService<IExtensionManager>(); |
17 | |||
18 | var backendExtensions = extensionManager.Create<IWindowsInstallerBackendExtension>(); | ||
17 | 19 | ||
18 | foreach (var extension in backendExtensions) | 20 | foreach (var extension in backendExtensions) |
19 | { | 21 | { |
@@ -25,7 +27,7 @@ namespace WixToolset.Core.WindowsInstaller | |||
25 | var command = new BindDatabaseCommand(context, backendExtensions, validator); | 27 | var command = new BindDatabaseCommand(context, backendExtensions, validator); |
26 | command.Execute(); | 28 | command.Execute(); |
27 | 29 | ||
28 | var result = new BindResult(command.FileTransfers, command.ContentFilePaths); | 30 | var result = new BindResult { FileTransfers = command.FileTransfers, ContentFilePaths = command.ContentFilePaths }; |
29 | 31 | ||
30 | foreach (var extension in backendExtensions) | 32 | foreach (var extension in backendExtensions) |
31 | { | 33 | { |
diff --git a/src/WixToolset.Core.WindowsInstaller/MspBackend.cs b/src/WixToolset.Core.WindowsInstaller/MspBackend.cs index 8fb63665..5dbed241 100644 --- a/src/WixToolset.Core.WindowsInstaller/MspBackend.cs +++ b/src/WixToolset.Core.WindowsInstaller/MspBackend.cs | |||
@@ -16,7 +16,7 @@ namespace WixToolset.Core.WindowsInstaller | |||
16 | 16 | ||
17 | internal class MspBackend : IBackend | 17 | internal class MspBackend : IBackend |
18 | { | 18 | { |
19 | public BindResult Bind(IBindContext context) | 19 | public BindResult Bind(WixToolset.Extensibility.IBindContext context) |
20 | { | 20 | { |
21 | throw new NotImplementedException(); | 21 | throw new NotImplementedException(); |
22 | } | 22 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/MstBackend.cs b/src/WixToolset.Core.WindowsInstaller/MstBackend.cs index 17617dbc..4eb0901c 100644 --- a/src/WixToolset.Core.WindowsInstaller/MstBackend.cs +++ b/src/WixToolset.Core.WindowsInstaller/MstBackend.cs | |||
@@ -7,7 +7,6 @@ namespace WixToolset.Core.WindowsInstaller | |||
7 | using WixToolset.Data; | 7 | using WixToolset.Data; |
8 | using WixToolset.Data.Bind; | 8 | using WixToolset.Data.Bind; |
9 | using WixToolset.Extensibility; | 9 | using WixToolset.Extensibility; |
10 | using WixToolset.Extensibility.Services; | ||
11 | 10 | ||
12 | internal class MstBackend : IBackend | 11 | internal class MstBackend : IBackend |
13 | { | 12 | { |
diff --git a/src/WixToolset.Core.WindowsInstaller/Unbind/UnbindTranformCommand.cs b/src/WixToolset.Core.WindowsInstaller/Unbind/UnbindTranformCommand.cs index 2b018013..00e5a755 100644 --- a/src/WixToolset.Core.WindowsInstaller/Unbind/UnbindTranformCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Unbind/UnbindTranformCommand.cs | |||
@@ -244,7 +244,7 @@ namespace WixToolset.Core.WindowsInstaller.Unbind | |||
244 | private void GenerateDatabase(Output output, string databaseFile) | 244 | private void GenerateDatabase(Output output, string databaseFile) |
245 | { | 245 | { |
246 | var command = new GenerateDatabaseCommand(); | 246 | var command = new GenerateDatabaseCommand(); |
247 | command.Extensions = Array.Empty<IBinderExtension>(); | 247 | command.Extensions = Array.Empty<IFileSystemExtension>(); |
248 | command.Output = output; | 248 | command.Output = output; |
249 | command.OutputPath = databaseFile; | 249 | command.OutputPath = databaseFile; |
250 | command.KeepAddedColumns = true; | 250 | command.KeepAddedColumns = true; |
diff --git a/src/WixToolset.Core.WindowsInstaller/Validator.cs b/src/WixToolset.Core.WindowsInstaller/Validator.cs index d553cc71..5f41e88d 100644 --- a/src/WixToolset.Core.WindowsInstaller/Validator.cs +++ b/src/WixToolset.Core.WindowsInstaller/Validator.cs | |||
@@ -324,7 +324,7 @@ namespace WixToolset.Core.WindowsInstaller | |||
324 | } | 324 | } |
325 | } | 325 | } |
326 | 326 | ||
327 | public static Validator CreateFromContext(IBindContext context, string cubeFilename) | 327 | public static Validator CreateFromContext(WixToolset.Extensibility.IBindContext context, string cubeFilename) |
328 | { | 328 | { |
329 | Validator validator = null; | 329 | Validator validator = null; |
330 | 330 | ||
diff --git a/src/WixToolset.Core.WindowsInstaller/WindowsInstallerBackendFactory.cs b/src/WixToolset.Core.WindowsInstaller/WindowsInstallerBackendFactory.cs index a7f58ed4..b66a4617 100644 --- a/src/WixToolset.Core.WindowsInstaller/WindowsInstallerBackendFactory.cs +++ b/src/WixToolset.Core.WindowsInstaller/WindowsInstallerBackendFactory.cs | |||
@@ -5,7 +5,6 @@ namespace WixToolset.Core.WindowsInstaller | |||
5 | using System; | 5 | using System; |
6 | using System.IO; | 6 | using System.IO; |
7 | using WixToolset.Extensibility; | 7 | using WixToolset.Extensibility; |
8 | using WixToolset.Extensibility.Services; | ||
9 | 8 | ||
10 | internal class WindowsInstallerBackendFactory : IBackendFactory | 9 | internal class WindowsInstallerBackendFactory : IBackendFactory |
11 | { | 10 | { |