aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs')
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs
index a31c8079..e1777246 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs
@@ -15,18 +15,22 @@ namespace WixToolset.Core.WindowsInstaller.Bind
15 using WixToolset.Core.Native; 15 using WixToolset.Core.Native;
16 using WixToolset.Core.Bind; 16 using WixToolset.Core.Bind;
17 using WixToolset.Data.Tuples; 17 using WixToolset.Data.Tuples;
18 using WixToolset.Extensibility.Services;
18 19
19 /// <summary> 20 /// <summary>
20 /// Retrieve files information and extract them from merge modules. 21 /// Retrieve files information and extract them from merge modules.
21 /// </summary> 22 /// </summary>
22 internal class ExtractMergeModuleFilesCommand 23 internal class ExtractMergeModuleFilesCommand
23 { 24 {
24 public ExtractMergeModuleFilesCommand(IntermediateSection section, List<WixMergeTuple> wixMergeTuples) 25 public ExtractMergeModuleFilesCommand(IMessaging messaging, IntermediateSection section, List<WixMergeTuple> wixMergeTuples)
25 { 26 {
27 this.Messaging = messaging;
26 this.Section = section; 28 this.Section = section;
27 this.WixMergeTuples = wixMergeTuples; 29 this.WixMergeTuples = wixMergeTuples;
28 } 30 }
29 31
32 private IMessaging Messaging { get; }
33
30 private IntermediateSection Section { get; } 34 private IntermediateSection Section { get; }
31 35
32 private List<WixMergeTuple> WixMergeTuples { get; } 36 private List<WixMergeTuple> WixMergeTuples { get; }
@@ -121,11 +125,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind
121 // If case-sensitive collision with another merge module or a user-authored file identifier. 125 // If case-sensitive collision with another merge module or a user-authored file identifier.
122 if (indexedFileFacades.TryGetValue(mergeModuleFileFacade.File.File, out var collidingFacade)) 126 if (indexedFileFacades.TryGetValue(mergeModuleFileFacade.File.File, out var collidingFacade))
123 { 127 {
124 Messaging.Instance.OnMessage(WixErrors.DuplicateModuleFileIdentifier(wixMergeRow.SourceLineNumbers, wixMergeRow.Id.Id, collidingFacade.File.File)); 128 this.Messaging.Write(ErrorMessages.DuplicateModuleFileIdentifier(wixMergeRow.SourceLineNumbers, wixMergeRow.Id.Id, collidingFacade.File.File));
125 } 129 }
126 else if (uniqueModuleFileIdentifiers.TryGetValue(mergeModuleFileFacade.File.File, out collidingFacade)) // case-insensitive collision with another file identifier in the same merge module 130 else if (uniqueModuleFileIdentifiers.TryGetValue(mergeModuleFileFacade.File.File, out collidingFacade)) // case-insensitive collision with another file identifier in the same merge module
127 { 131 {
128 Messaging.Instance.OnMessage(WixErrors.DuplicateModuleCaseInsensitiveFileIdentifier(wixMergeRow.SourceLineNumbers, wixMergeRow.Id.Id, mergeModuleFileFacade.File.File, collidingFacade.File.File)); 132 this.Messaging.Write(ErrorMessages.DuplicateModuleCaseInsensitiveFileIdentifier(wixMergeRow.SourceLineNumbers, wixMergeRow.Id.Id, mergeModuleFileFacade.File.File, collidingFacade.File.File));
129 } 133 }
130 else // no collision 134 else // no collision
131 { 135 {
@@ -152,23 +156,23 @@ namespace WixToolset.Core.WindowsInstaller.Bind
152 int moduleInstallerVersion = Convert.ToInt32(moduleInstallerVersionString, CultureInfo.InvariantCulture); 156 int moduleInstallerVersion = Convert.ToInt32(moduleInstallerVersionString, CultureInfo.InvariantCulture);
153 if (moduleInstallerVersion > this.OutputInstallerVersion) 157 if (moduleInstallerVersion > this.OutputInstallerVersion)
154 { 158 {
155 Messaging.Instance.OnMessage(WixWarnings.InvalidHigherInstallerVersionInModule(wixMergeRow.SourceLineNumbers, wixMergeRow.Id.Id, moduleInstallerVersion, this.OutputInstallerVersion)); 159 this.Messaging.Write(WarningMessages.InvalidHigherInstallerVersionInModule(wixMergeRow.SourceLineNumbers, wixMergeRow.Id.Id, moduleInstallerVersion, this.OutputInstallerVersion));
156 } 160 }
157 } 161 }
158 catch (FormatException) 162 catch (FormatException)
159 { 163 {
160 throw new WixException(WixErrors.MissingOrInvalidModuleInstallerVersion(wixMergeRow.SourceLineNumbers, wixMergeRow.Id.Id, wixMergeRow.SourceFile, moduleInstallerVersionString)); 164 throw new WixException(ErrorMessages.MissingOrInvalidModuleInstallerVersion(wixMergeRow.SourceLineNumbers, wixMergeRow.Id.Id, wixMergeRow.SourceFile, moduleInstallerVersionString));
161 } 165 }
162 } 166 }
163 } 167 }
164 } 168 }
165 catch (FileNotFoundException) 169 catch (FileNotFoundException)
166 { 170 {
167 throw new WixException(WixErrors.FileNotFound(wixMergeRow.SourceLineNumbers, wixMergeRow.SourceFile)); 171 throw new WixException(ErrorMessages.FileNotFound(wixMergeRow.SourceLineNumbers, wixMergeRow.SourceFile));
168 } 172 }
169 catch (Win32Exception) 173 catch (Win32Exception)
170 { 174 {
171 throw new WixException(WixErrors.CannotOpenMergeModule(wixMergeRow.SourceLineNumbers, wixMergeRow.Id.Id, wixMergeRow.SourceFile)); 175 throw new WixException(ErrorMessages.CannotOpenMergeModule(wixMergeRow.SourceLineNumbers, wixMergeRow.Id.Id, wixMergeRow.SourceFile));
172 } 176 }
173 177
174 return containsFiles; 178 return containsFiles;
@@ -187,7 +191,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
187 } 191 }
188 catch (FormatException) 192 catch (FormatException)
189 { 193 {
190 Messaging.Instance.OnMessage(WixErrors.InvalidMergeLanguage(wixMergeRow.SourceLineNumbers, mergeId, wixMergeRow.Language.ToString())); 194 this.Messaging.Write(ErrorMessages.InvalidMergeLanguage(wixMergeRow.SourceLineNumbers, mergeId, wixMergeRow.Language.ToString()));
191 return; 195 return;
192 } 196 }
193 197
@@ -210,16 +214,16 @@ namespace WixToolset.Core.WindowsInstaller.Bind
210 } 214 }
211 catch (FileNotFoundException) 215 catch (FileNotFoundException)
212 { 216 {
213 throw new WixException(WixErrors.CabFileDoesNotExist(moduleCabPath, wixMergeRow.SourceFile, mergeIdPath)); 217 throw new WixException(ErrorMessages.CabFileDoesNotExist(moduleCabPath, wixMergeRow.SourceFile, mergeIdPath));
214 } 218 }
215 catch 219 catch
216 { 220 {
217 throw new WixException(WixErrors.CabExtractionFailed(moduleCabPath, wixMergeRow.SourceFile, mergeIdPath)); 221 throw new WixException(ErrorMessages.CabExtractionFailed(moduleCabPath, wixMergeRow.SourceFile, mergeIdPath));
218 } 222 }
219 } 223 }
220 catch (COMException ce) 224 catch (COMException ce)
221 { 225 {
222 throw new WixException(WixErrors.UnableToOpenModule(wixMergeRow.SourceLineNumbers, wixMergeRow.SourceFile, ce.Message)); 226 throw new WixException(ErrorMessages.UnableToOpenModule(wixMergeRow.SourceLineNumbers, wixMergeRow.SourceFile, ce.Message));
223 } 227 }
224 finally 228 finally
225 { 229 {