diff options
Diffstat (limited to 'src/WixToolset.Core/Compiler_Module.cs')
| -rw-r--r-- | src/WixToolset.Core/Compiler_Module.cs | 56 |
1 files changed, 52 insertions, 4 deletions
diff --git a/src/WixToolset.Core/Compiler_Module.cs b/src/WixToolset.Core/Compiler_Module.cs index 2ecd9113..2f926d82 100644 --- a/src/WixToolset.Core/Compiler_Module.cs +++ b/src/WixToolset.Core/Compiler_Module.cs | |||
| @@ -24,6 +24,12 @@ namespace WixToolset.Core | |||
| 24 | var codepage = 0; | 24 | var codepage = 0; |
| 25 | string moduleId = null; | 25 | string moduleId = null; |
| 26 | string version = null; | 26 | string version = null; |
| 27 | var setCodepage = false; | ||
| 28 | var setPackageName = false; | ||
| 29 | var setKeywords = false; | ||
| 30 | var ignoredForMergeModules = false; | ||
| 31 | |||
| 32 | this.GetDefaultPlatformAndInstallerVersion(out var platform, out var msiVersion); | ||
| 27 | 33 | ||
| 28 | this.activeName = null; | 34 | this.activeName = null; |
| 29 | this.activeLanguage = null; | 35 | this.activeLanguage = null; |
| @@ -50,7 +56,9 @@ namespace WixToolset.Core | |||
| 50 | break; | 56 | break; |
| 51 | case "Guid": | 57 | case "Guid": |
| 52 | moduleId = this.Core.GetAttributeGuidValue(sourceLineNumbers, attrib, false); | 58 | moduleId = this.Core.GetAttributeGuidValue(sourceLineNumbers, attrib, false); |
| 53 | this.Core.Write(WarningMessages.DeprecatedModuleGuidAttribute(sourceLineNumbers)); | 59 | break; |
| 60 | case "InstallerVersion": | ||
| 61 | msiVersion = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, Int32.MaxValue); | ||
| 54 | break; | 62 | break; |
| 55 | case "Language": | 63 | case "Language": |
| 56 | this.activeLanguage = this.Core.GetAttributeLocalizableIntegerValue(sourceLineNumbers, attrib, 0, Int16.MaxValue); | 64 | this.activeLanguage = this.Core.GetAttributeLocalizableIntegerValue(sourceLineNumbers, attrib, 0, Int16.MaxValue); |
| @@ -74,6 +82,11 @@ namespace WixToolset.Core | |||
| 74 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Id")); | 82 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Id")); |
| 75 | } | 83 | } |
| 76 | 84 | ||
| 85 | if (null == moduleId) | ||
| 86 | { | ||
| 87 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Guid")); | ||
| 88 | } | ||
| 89 | |||
| 77 | if (null == this.activeLanguage) | 90 | if (null == this.activeLanguage) |
| 78 | { | 91 | { |
| 79 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Language")); | 92 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Language")); |
| @@ -174,9 +187,6 @@ namespace WixToolset.Core | |||
| 174 | case "IgnoreTable": | 187 | case "IgnoreTable": |
| 175 | this.ParseIgnoreTableElement(child); | 188 | this.ParseIgnoreTableElement(child); |
| 176 | break; | 189 | break; |
| 177 | case "Package": | ||
| 178 | this.ParsePackageElement(child, null, moduleId); | ||
| 179 | break; | ||
| 180 | case "Property": | 190 | case "Property": |
| 181 | this.ParsePropertyElement(child); | 191 | this.ParsePropertyElement(child); |
| 182 | break; | 192 | break; |
| @@ -196,6 +206,9 @@ namespace WixToolset.Core | |||
| 196 | case "Substitution": | 206 | case "Substitution": |
| 197 | this.ParseSubstitutionElement(child); | 207 | this.ParseSubstitutionElement(child); |
| 198 | break; | 208 | break; |
| 209 | case "SummaryInformation": | ||
| 210 | this.ParseSummaryInformationElement(child, ref setCodepage, ref setPackageName, ref setKeywords, ref ignoredForMergeModules); | ||
| 211 | break; | ||
| 199 | case "UI": | 212 | case "UI": |
| 200 | this.ParseUIElement(child); | 213 | this.ParseUIElement(child); |
| 201 | break; | 214 | break; |
| @@ -219,6 +232,33 @@ namespace WixToolset.Core | |||
| 219 | 232 | ||
| 220 | if (!this.Core.EncounteredError) | 233 | if (!this.Core.EncounteredError) |
| 221 | { | 234 | { |
| 235 | if (!setCodepage) | ||
| 236 | { | ||
| 237 | this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers) | ||
| 238 | { | ||
| 239 | PropertyId = SummaryInformationType.Codepage, | ||
| 240 | Value = "1252" | ||
| 241 | }); | ||
| 242 | } | ||
| 243 | |||
| 244 | if (!setPackageName) | ||
| 245 | { | ||
| 246 | this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers) | ||
| 247 | { | ||
| 248 | PropertyId = SummaryInformationType.Subject, | ||
| 249 | Value = this.activeName | ||
| 250 | }); | ||
| 251 | } | ||
| 252 | |||
| 253 | if (!setKeywords) | ||
| 254 | { | ||
| 255 | this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers) | ||
| 256 | { | ||
| 257 | PropertyId = SummaryInformationType.Keywords, | ||
| 258 | Value = "Installer" | ||
| 259 | }); | ||
| 260 | } | ||
| 261 | |||
| 222 | var symbol = this.Core.AddSymbol(new ModuleSignatureSymbol(sourceLineNumbers, new Identifier(AccessModifier.Public, this.activeName, this.activeLanguage)) | 262 | var symbol = this.Core.AddSymbol(new ModuleSignatureSymbol(sourceLineNumbers, new Identifier(AccessModifier.Public, this.activeName, this.activeLanguage)) |
| 223 | { | 263 | { |
| 224 | ModuleID = this.activeName, | 264 | ModuleID = this.activeName, |
| @@ -226,6 +266,14 @@ namespace WixToolset.Core | |||
| 226 | }); | 266 | }); |
| 227 | 267 | ||
| 228 | symbol.Set((int)ModuleSignatureSymbolFields.Language, this.activeLanguage); | 268 | symbol.Set((int)ModuleSignatureSymbolFields.Language, this.activeLanguage); |
| 269 | |||
| 270 | this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers) | ||
| 271 | { | ||
| 272 | PropertyId = SummaryInformationType.PackageCode, | ||
| 273 | Value = moduleId | ||
| 274 | }); | ||
| 275 | |||
| 276 | this.ValidateAndAddCommonSummaryInformationSymbols(sourceLineNumbers, msiVersion, platform); | ||
| 229 | } | 277 | } |
| 230 | } | 278 | } |
| 231 | finally | 279 | finally |
