diff options
| author | Bob Arnson <bob@firegiant.com> | 2020-02-21 19:31:01 -0500 |
|---|---|---|
| committer | Bob Arnson <bob@firegiant.com> | 2020-02-21 19:40:41 -0500 |
| commit | 752c7593613d72bd2d0da88508b5b3e9e0857286 (patch) | |
| tree | 4fa917e05edf297c721a1ceca925682429896d52 /src | |
| parent | 34ef0f821f84d4598df14cd8e2f863248eddc325 (diff) | |
| download | wix-752c7593613d72bd2d0da88508b5b3e9e0857286.tar.gz wix-752c7593613d72bd2d0da88508b5b3e9e0857286.tar.bz2 wix-752c7593613d72bd2d0da88508b5b3e9e0857286.zip | |
Early detection of duplicate table definitions from extensions.
Diffstat (limited to 'src')
| -rw-r--r-- | src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs | 2 | ||||
| -rw-r--r-- | src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs | 11 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs index 167e0bb0..fecf3efd 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs | |||
| @@ -111,7 +111,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 111 | // Load standard tables, authored custom tables, and extension custom tables. | 111 | // Load standard tables, authored custom tables, and extension custom tables. |
| 112 | TableDefinitionCollection tableDefinitions; | 112 | TableDefinitionCollection tableDefinitions; |
| 113 | { | 113 | { |
| 114 | var command = new LoadTableDefinitionsCommand(section, this.BackendExtensions); | 114 | var command = new LoadTableDefinitionsCommand(this.Messaging, section, this.BackendExtensions); |
| 115 | command.Execute(); | 115 | command.Execute(); |
| 116 | 116 | ||
| 117 | tableDefinitions = command.TableDefinitions; | 117 | tableDefinitions = command.TableDefinitions; |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs index 1aa4065e..fe13391b 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs | |||
| @@ -10,15 +10,19 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 10 | using WixToolset.Data.Tuples; | 10 | using WixToolset.Data.Tuples; |
| 11 | using WixToolset.Data.WindowsInstaller; | 11 | using WixToolset.Data.WindowsInstaller; |
| 12 | using WixToolset.Extensibility; | 12 | using WixToolset.Extensibility; |
| 13 | using WixToolset.Extensibility.Services; | ||
| 13 | 14 | ||
| 14 | internal class LoadTableDefinitionsCommand | 15 | internal class LoadTableDefinitionsCommand |
| 15 | { | 16 | { |
| 16 | public LoadTableDefinitionsCommand(IntermediateSection section, IEnumerable<IWindowsInstallerBackendBinderExtension> backendExtensions) | 17 | public LoadTableDefinitionsCommand(IMessaging messaging, IntermediateSection section, IEnumerable<IWindowsInstallerBackendBinderExtension> backendExtensions) |
| 17 | { | 18 | { |
| 19 | this.Messaging = messaging; | ||
| 18 | this.Section = section; | 20 | this.Section = section; |
| 19 | this.BackendExtensions = backendExtensions; | 21 | this.BackendExtensions = backendExtensions; |
| 20 | } | 22 | } |
| 21 | 23 | ||
| 24 | public IMessaging Messaging { get; } | ||
| 25 | |||
| 22 | private IntermediateSection Section { get; } | 26 | private IntermediateSection Section { get; } |
| 23 | 27 | ||
| 24 | private IEnumerable<IWindowsInstallerBackendBinderExtension> BackendExtensions { get; } | 28 | private IEnumerable<IWindowsInstallerBackendBinderExtension> BackendExtensions { get; } |
| @@ -39,6 +43,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 39 | { | 43 | { |
| 40 | foreach (var tableDefinition in backendExtension.TableDefinitions) | 44 | foreach (var tableDefinition in backendExtension.TableDefinitions) |
| 41 | { | 45 | { |
| 46 | if (tableDefinitions.Contains(tableDefinition.Name)) | ||
| 47 | { | ||
| 48 | this.Messaging.Write(ErrorMessages.DuplicateExtensionTable(backendExtension.GetType().Assembly.Location, tableDefinition.Name)); | ||
| 49 | } | ||
| 50 | |||
| 42 | tableDefinitions.Add(tableDefinition); | 51 | tableDefinitions.Add(tableDefinition); |
| 43 | } | 52 | } |
| 44 | } | 53 | } |
