aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2020-10-23 17:32:44 -0400
committerBob Arnson <bob@firegiant.com>2020-10-24 19:44:44 -0400
commit8b5505cd13367d48bce4ec8a6018e370ed3755b1 (patch)
tree97fb50229aff208bce91b160d11ffeee9b1e783a
parent95188080c8005c01c39bb071459b36f8660bcfcd (diff)
downloadwix-8b5505cd13367d48bce4ec8a6018e370ed3755b1.tar.gz
wix-8b5505cd13367d48bce4ec8a6018e370ed3755b1.tar.bz2
wix-8b5505cd13367d48bce4ec8a6018e370ed3755b1.zip
Reorganize Product/Package to Package/SummaryInformation.
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/BindSummaryInfoCommand.cs23
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs99
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Decompile/Names.cs7
-rw-r--r--src/WixToolset.Core/CommandLine/DecompileCommand.cs1
-rw-r--r--src/WixToolset.Core/Compiler.cs4
-rw-r--r--src/WixToolset.Core/Compiler_2.cs467
-rw-r--r--src/WixToolset.Core/Compiler_Module.cs56
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs4
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/DecompiledNestedDirSearchUnderRegSearch.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Class/DecompiledOldClassTableDef.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Components/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable-Expected.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/Expected.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/Expected.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/Package.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Package.wxs32
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Patch.wxs19
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/Package.wxs30
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SequenceTables/DecompiledSequenceTables.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/DecompiledShortcuts.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs7
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Variables/Package.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/Package.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/Package.wxs9
40 files changed, 473 insertions, 530 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindSummaryInfoCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindSummaryInfoCommand.cs
index 6af2dc7a..a496c7ce 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/BindSummaryInfoCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindSummaryInfoCommand.cs
@@ -46,9 +46,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind
46 this.InstallerVersion = 0; 46 this.InstallerVersion = 0;
47 this.ModularizationSuffix = null; 47 this.ModularizationSuffix = null;
48 48
49 var foundCreateDataTime = false; 49 var foundCreateDateTime = false;
50 var foundLastSaveDataTime = false; 50 var foundLastSaveDataTime = false;
51 var foundCreatingApplication = false; 51 var foundCreatingApplication = false;
52 var foundPackageCode = false;
52 var now = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture); 53 var now = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture);
53 54
54 foreach (var summaryInformationSymbol in this.Section.Symbols.OfType<SummaryInformationSymbol>()) 55 foreach (var summaryInformationSymbol in this.Section.Symbols.OfType<SummaryInformationSymbol>())
@@ -73,20 +74,16 @@ namespace WixToolset.Core.WindowsInstaller.Bind
73 break; 74 break;
74 75
75 case SummaryInformationType.PackageCode: // PID_REVNUMBER 76 case SummaryInformationType.PackageCode: // PID_REVNUMBER
77 foundPackageCode = true;
76 var packageCode = summaryInformationSymbol.Value; 78 var packageCode = summaryInformationSymbol.Value;
77 79
78 if (SectionType.Module == this.Section.Type) 80 if (SectionType.Module == this.Section.Type)
79 { 81 {
80 this.ModularizationSuffix = "." + packageCode.Substring(1, 36).Replace('-', '_'); 82 this.ModularizationSuffix = "." + packageCode.Substring(1, 36).Replace('-', '_');
81 } 83 }
82 else if ("*" == packageCode)
83 {
84 // set the revision number (package/patch code) if it should be automatically generated
85 summaryInformationSymbol.Value = Common.GenerateGuid();
86 }
87 break; 84 break;
88 case SummaryInformationType.Created: 85 case SummaryInformationType.Created:
89 foundCreateDataTime = true; 86 foundCreateDateTime = true;
90 break; 87 break;
91 case SummaryInformationType.LastSaved: 88 case SummaryInformationType.LastSaved:
92 foundLastSaveDataTime = true; 89 foundLastSaveDataTime = true;
@@ -113,8 +110,18 @@ namespace WixToolset.Core.WindowsInstaller.Bind
113 } 110 }
114 } 111 }
115 112
113 // set the revision number (package/patch code) if it should be automatically generated
114 if (!foundPackageCode)
115 {
116 this.Section.AddSymbol(new SummaryInformationSymbol(null)
117 {
118 PropertyId = SummaryInformationType.PackageCode,
119 Value = Common.GenerateGuid(),
120 });
121 }
122
116 // add a summary information row for the create time/date property if its not already set 123 // add a summary information row for the create time/date property if its not already set
117 if (!foundCreateDataTime) 124 if (!foundCreateDateTime)
118 { 125 {
119 this.Section.AddSymbol(new SummaryInformationSymbol(null) 126 this.Section.AddSymbol(new SummaryInformationSymbol(null)
120 { 127 {
diff --git a/src/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs b/src/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs
index a0146fda..80ee75a5 100644
--- a/src/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs
@@ -160,7 +160,7 @@ namespace WixToolset.Core.WindowsInstaller
160 this.RootElement = new XElement(Names.PatchCreationElement); 160 this.RootElement = new XElement(Names.PatchCreationElement);
161 break; 161 break;
162 case OutputType.Product: 162 case OutputType.Product:
163 this.RootElement = new XElement(Names.ProductElement); 163 this.RootElement = new XElement(Names.PackageElement);
164 break; 164 break;
165 default: 165 default:
166 throw new InvalidOperationException("Unknown output type."); 166 throw new InvalidOperationException("Unknown output type.");
@@ -669,6 +669,7 @@ namespace WixToolset.Core.WindowsInstaller
669 } 669 }
670 else 670 else
671 { 671 {
672 this.FinalizeSummaryInformationStream(tables);
672 this.FinalizeCheckBoxTable(tables); 673 this.FinalizeCheckBoxTable(tables);
673 this.FinalizeComponentTable(tables); 674 this.FinalizeComponentTable(tables);
674 this.FinalizeDialogTable(tables); 675 this.FinalizeDialogTable(tables);
@@ -2548,7 +2549,7 @@ namespace WixToolset.Core.WindowsInstaller
2548 switch (table.Name) 2549 switch (table.Name)
2549 { 2550 {
2550 case "_SummaryInformation": 2551 case "_SummaryInformation":
2551 this.Decompile_SummaryInformationTable(table); 2552 // handled in FinalizeDecompile
2552 break; 2553 break;
2553 case "AdminExecuteSequence": 2554 case "AdminExecuteSequence":
2554 case "AdminUISequence": 2555 case "AdminUISequence":
@@ -2976,11 +2977,13 @@ namespace WixToolset.Core.WindowsInstaller
2976 /// Decompile the _SummaryInformation table. 2977 /// Decompile the _SummaryInformation table.
2977 /// </summary> 2978 /// </summary>
2978 /// <param name="table">The table to decompile.</param> 2979 /// <param name="table">The table to decompile.</param>
2979 private void Decompile_SummaryInformationTable(Table table) 2980 private void FinalizeSummaryInformationStream(TableIndexedCollection tables)
2980 { 2981 {
2982 var table = tables["_SummaryInformation"];
2983
2981 if (OutputType.Module == this.OutputType || OutputType.Product == this.OutputType) 2984 if (OutputType.Module == this.OutputType || OutputType.Product == this.OutputType)
2982 { 2985 {
2983 var xPackage = new XElement(Names.PackageElement); 2986 var xSummaryInformation = new XElement(Names.SummaryInformationElement);
2984 2987
2985 foreach (var row in table.Rows) 2988 foreach (var row in table.Rows)
2986 { 2989 {
@@ -2993,56 +2996,63 @@ namespace WixToolset.Core.WindowsInstaller
2993 case 1: 2996 case 1:
2994 if ("1252" != value) 2997 if ("1252" != value)
2995 { 2998 {
2996 xPackage.SetAttributeValue("SummaryCodepage", value); 2999 xSummaryInformation.SetAttributeValue("Codepage", value);
2997 } 3000 }
2998 break; 3001 break;
2999 case 3: 3002 case 3:
3000 xPackage.SetAttributeValue("Description", value); 3003 {
3004 var productName = this.RootElement.Attribute("Name")?.Value;
3005 if (value != productName)
3006 {
3007 xSummaryInformation.SetAttributeValue("Description", value);
3008 }
3001 break; 3009 break;
3010 }
3002 case 4: 3011 case 4:
3003 xPackage.SetAttributeValue("Manufacturer", value); 3012 {
3004 break; 3013 var productManufacturer = this.RootElement.Attribute("Manufacturer")?.Value;
3005 case 5: 3014 if (value != productManufacturer)
3006 if ("Installer" != value)
3007 { 3015 {
3008 xPackage.SetAttributeValue("Keywords", value); 3016 xSummaryInformation.SetAttributeValue("Manufacturer", value);
3009 } 3017 }
3010 break; 3018 break;
3011 case 6: 3019 }
3012 if (!value.StartsWith("This installer database contains the logic and data required to install ")) 3020 case 5:
3021 if ("Installer" != value)
3013 { 3022 {
3014 xPackage.SetAttributeValue("Comments", value); 3023 xSummaryInformation.SetAttributeValue("Keywords", value);
3015 } 3024 }
3016 break; 3025 break;
3017 case 7: 3026 case 7:
3018 var template = value.Split(';'); 3027 var template = value.Split(';');
3019 if (0 < template.Length && 0 < template[template.Length - 1].Length) 3028 if (0 < template.Length && 0 < template[template.Length - 1].Length)
3020 { 3029 {
3021 xPackage.SetAttributeValue("Languages", template[template.Length - 1]); 3030 this.RootElement.SetAttributeValue("Language", template[template.Length - 1]);
3022 }
3023
3024 var platform = GetPlatformFromTemplateSummaryInformation(template).ToString().ToLowerInvariant();
3025 if (!String.IsNullOrEmpty(platform))
3026 {
3027 xPackage.SetAttributeValue("Platform", platform);
3028 } 3031 }
3029 break; 3032 break;
3030 case 9: 3033 case 9:
3031 if (OutputType.Module == this.OutputType) 3034 if (OutputType.Module == this.OutputType)
3032 { 3035 {
3033 this.ModularizationGuid = value; 3036 this.ModularizationGuid = value;
3034 xPackage.SetAttributeValue("Id", value);
3035 } 3037 }
3036 break; 3038 break;
3037 case 14: 3039 case 14:
3038 xPackage.SetAttributeValue("InstallerVersion", row.FieldAsInteger(1)); 3040 var installerVersion = row.FieldAsInteger(1);
3041 // Default InstallerVersion.
3042 if (installerVersion != 500)
3043 {
3044 this.RootElement.SetAttributeValue("InstallerVersion", installerVersion);
3045 }
3039 break; 3046 break;
3040 case 15: 3047 case 15:
3041 var wordCount = row.FieldAsInteger(1); 3048 var wordCount = row.FieldAsInteger(1);
3042 if (0x1 == (wordCount & 0x1)) 3049 if (0x1 == (wordCount & 0x1))
3043 { 3050 {
3044 this.ShortNames = true; 3051 this.ShortNames = true;
3045 xPackage.SetAttributeValue("ShortNames", "yes"); 3052 if (OutputType.Product == this.OutputType)
3053 {
3054 this.RootElement.SetAttributeValue("ShortNames", "yes");
3055 }
3046 } 3056 }
3047 3057
3048 if (0x2 == (wordCount & 0x2)) 3058 if (0x2 == (wordCount & 0x2))
@@ -3051,38 +3061,35 @@ namespace WixToolset.Core.WindowsInstaller
3051 3061
3052 if (OutputType.Product == this.OutputType) 3062 if (OutputType.Product == this.OutputType)
3053 { 3063 {
3054 xPackage.SetAttributeValue("Compressed", "yes"); 3064 this.RootElement.SetAttributeValue("Compressed", "yes");
3055 } 3065 }
3056 } 3066 }
3057 3067
3058 if (0x4 == (wordCount & 0x4)) 3068 if (OutputType.Product == this.OutputType)
3059 { 3069 {
3060 xPackage.SetAttributeValue("AdminImage", "yes"); 3070 if (0x8 == (wordCount & 0x8))
3061 } 3071 {
3062 3072 this.RootElement.SetAttributeValue("Scope", "perUser");
3063 if (0x8 == (wordCount & 0x8)) 3073 }
3064 { 3074 else
3065 xPackage.SetAttributeValue("InstallPrivileges", "limited"); 3075 {
3076 var xAllUsers = this.RootElement.Elements(Names.PropertyElement).SingleOrDefault(p => p.Attribute("Id")?.Value == "ALLUSERS");
3077 if (xAllUsers?.Attribute("Value")?.Value == "1")
3078 {
3079 xAllUsers?.Remove();
3080 }
3081 }
3066 } 3082 }
3067 3083
3068 break; 3084 break;
3069 case 19:
3070 var security = row.FieldAsInteger(1);
3071 switch (security)
3072 {
3073 case 0:
3074 xPackage.SetAttributeValue("ReadOnly", "no");
3075 break;
3076 case 4:
3077 xPackage.SetAttributeValue("ReadOnly", "yes");
3078 break;
3079 }
3080 break;
3081 } 3085 }
3082 } 3086 }
3083 } 3087 }
3084 3088
3085 this.RootElement.Add(xPackage); 3089 if (xSummaryInformation.HasAttributes)
3090 {
3091 this.RootElement.Add(xSummaryInformation);
3092 }
3086 } 3093 }
3087 else 3094 else
3088 { 3095 {
@@ -6204,7 +6211,7 @@ namespace WixToolset.Core.WindowsInstaller
6204 this.RootElement.SetAttributeValue("Manufacturer", value); 6211 this.RootElement.SetAttributeValue("Manufacturer", value);
6205 continue; 6212 continue;
6206 case "ProductCode": 6213 case "ProductCode":
6207 this.RootElement.SetAttributeValue("Id", value.ToUpper(CultureInfo.InvariantCulture)); 6214 this.RootElement.SetAttributeValue("ProductCode", value.ToUpper(CultureInfo.InvariantCulture));
6208 continue; 6215 continue;
6209 case "ProductLanguage": 6216 case "ProductLanguage":
6210 this.RootElement.SetAttributeValue("Language", value); 6217 this.RootElement.SetAttributeValue("Language", value);
diff --git a/src/WixToolset.Core.WindowsInstaller/Decompile/Names.cs b/src/WixToolset.Core.WindowsInstaller/Decompile/Names.cs
index 63ab5cd3..82258c57 100644
--- a/src/WixToolset.Core.WindowsInstaller/Decompile/Names.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Decompile/Names.cs
@@ -8,10 +8,12 @@ namespace WixToolset.Core.WindowsInstaller.Decompile
8 8
9 public static readonly XName WixElement = WxsNamespace + "Wix"; 9 public static readonly XName WixElement = WxsNamespace + "Wix";
10 10
11 public static readonly XName ProductElement = WxsNamespace + "Product"; 11 public static readonly XName PackageElement = WxsNamespace + "Package";
12 public static readonly XName ModuleElement = WxsNamespace + "Module"; 12 public static readonly XName ModuleElement = WxsNamespace + "Module";
13 public static readonly XName PatchCreationElement = WxsNamespace + "PatchCreation"; 13 public static readonly XName PatchCreationElement = WxsNamespace + "PatchCreation";
14 14
15 public static readonly XName SummaryInformationElement = WxsNamespace + "SummaryInformation";
16
15 public static readonly XName CustomElement = WxsNamespace + "Custom"; 17 public static readonly XName CustomElement = WxsNamespace + "Custom";
16 18
17 public static readonly XName AdminExecuteSequenceElement = WxsNamespace + "AdminExecuteSequence"; 19 public static readonly XName AdminExecuteSequenceElement = WxsNamespace + "AdminExecuteSequence";
@@ -30,9 +32,8 @@ namespace WixToolset.Core.WindowsInstaller.Decompile
30 public static readonly XName FileElement = WxsNamespace + "File"; 32 public static readonly XName FileElement = WxsNamespace + "File";
31 33
32 public static readonly XName EnsureTableElement = WxsNamespace + "EnsureTable"; 34 public static readonly XName EnsureTableElement = WxsNamespace + "EnsureTable";
33 public static readonly XName PackageElement = WxsNamespace + "Package";
34 public static readonly XName PatchInformationElement = WxsNamespace + "PatchInformation"; 35 public static readonly XName PatchInformationElement = WxsNamespace + "PatchInformation";
35 36
36 public static readonly XName ProgressTextElement = WxsNamespace + "ProgressText"; 37 public static readonly XName ProgressTextElement = WxsNamespace + "ProgressText";
37 public static readonly XName UIElement = WxsNamespace + "UI"; 38 public static readonly XName UIElement = WxsNamespace + "UI";
38 39
diff --git a/src/WixToolset.Core/CommandLine/DecompileCommand.cs b/src/WixToolset.Core/CommandLine/DecompileCommand.cs
index fc77a7b4..bce7a5a4 100644
--- a/src/WixToolset.Core/CommandLine/DecompileCommand.cs
+++ b/src/WixToolset.Core/CommandLine/DecompileCommand.cs
@@ -53,6 +53,7 @@ namespace WixToolset.Core.CommandLine
53 53
54 if (!this.Messaging.EncounteredError) 54 if (!this.Messaging.EncounteredError)
55 { 55 {
56 Directory.CreateDirectory(Path.GetDirectoryName(context.OutputPath));
56 result.Document.Save(context.OutputPath, SaveOptions.OmitDuplicateNamespaces); 57 result.Document.Save(context.OutputPath, SaveOptions.OmitDuplicateNamespaces);
57 } 58 }
58 } 59 }
diff --git a/src/WixToolset.Core/Compiler.cs b/src/WixToolset.Core/Compiler.cs
index d9c60ef6..a575bb95 100644
--- a/src/WixToolset.Core/Compiler.cs
+++ b/src/WixToolset.Core/Compiler.cs
@@ -227,8 +227,8 @@ namespace WixToolset.Core
227 case "PatchCreation": 227 case "PatchCreation":
228 this.ParsePatchCreationElement(child); 228 this.ParsePatchCreationElement(child);
229 break; 229 break;
230 case "Product": 230 case "Package":
231 this.ParseProductElement(child); 231 this.ParsePackageElement(child);
232 break; 232 break;
233 case "Patch": 233 case "Patch":
234 this.ParsePatchElement(child); 234 this.ParsePatchElement(child);
diff --git a/src/WixToolset.Core/Compiler_2.cs b/src/WixToolset.Core/Compiler_2.cs
index fbad873e..a3bc09b6 100644
--- a/src/WixToolset.Core/Compiler_2.cs
+++ b/src/WixToolset.Core/Compiler_2.cs
@@ -23,15 +23,24 @@ namespace WixToolset.Core
23 /// Parses a product element. 23 /// Parses a product element.
24 /// </summary> 24 /// </summary>
25 /// <param name="node">Element to parse.</param> 25 /// <param name="node">Element to parse.</param>
26 private void ParseProductElement(XElement node) 26 private void ParsePackageElement(XElement node)
27 { 27 {
28 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); 28 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
29 var sourceBits = 0;
29 var codepage = 65001; 30 var codepage = 65001;
30 var productCode = "*"; 31 var productCode = "*";
32 var isPerMachine = true;
33 string installScope = null;
31 string upgradeCode = null; 34 string upgradeCode = null;
32 string manufacturer = null; 35 string manufacturer = null;
33 string version = null; 36 string version = null;
34 string symbols = null; 37 string symbols = null;
38 var isCodepageSet = false;
39 var isPackageNameSet = false;
40 var isKeywordsSet = false;
41 var isPackageAuthorSet = false;
42
43 this.GetDefaultPlatformAndInstallerVersion(out var platform, out var msiVersion);
35 44
36 this.activeName = null; 45 this.activeName = null;
37 this.activeLanguage = null; 46 this.activeLanguage = null;
@@ -42,12 +51,18 @@ namespace WixToolset.Core
42 { 51 {
43 switch (attrib.Name.LocalName) 52 switch (attrib.Name.LocalName)
44 { 53 {
45 case "Id":
46 productCode = this.Core.GetAttributeGuidValue(sourceLineNumbers, attrib, true);
47 break;
48 case "Codepage": 54 case "Codepage":
49 codepage = this.Core.GetAttributeCodePageValue(sourceLineNumbers, attrib); 55 codepage = this.Core.GetAttributeCodePageValue(sourceLineNumbers, attrib);
50 break; 56 break;
57 case "Compressed":
58 if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib))
59 {
60 sourceBits |= 2;
61 }
62 break;
63 case "InstallerVersion":
64 msiVersion = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, Int32.MaxValue);
65 break;
51 case "Language": 66 case "Language":
52 this.activeLanguage = this.Core.GetAttributeLocalizableIntegerValue(sourceLineNumbers, attrib, 0, Int16.MaxValue); 67 this.activeLanguage = this.Core.GetAttributeLocalizableIntegerValue(sourceLineNumbers, attrib, 0, Int16.MaxValue);
53 break; 68 break;
@@ -65,6 +80,31 @@ namespace WixToolset.Core
65 this.Core.Write(WarningMessages.PlaceholderValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, this.activeName)); 80 this.Core.Write(WarningMessages.PlaceholderValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, this.activeName));
66 } 81 }
67 break; 82 break;
83 case "ProductCode":
84 productCode = this.Core.GetAttributeGuidValue(sourceLineNumbers, attrib, true);
85 break;
86 case "Scope":
87 installScope = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
88 switch (installScope)
89 {
90 case "perMachine":
91 // handled below after we create the section.
92 break;
93 case "perUser":
94 isPerMachine = false;
95 sourceBits |= 8;
96 break;
97 default:
98 this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, installScope, "perMachine", "perUser"));
99 break;
100 }
101 break;
102 case "ShortNames":
103 if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib))
104 {
105 sourceBits |= 1;
106 }
107 break;
68 case "UpgradeCode": 108 case "UpgradeCode":
69 upgradeCode = this.Core.GetAttributeGuidValue(sourceLineNumbers, attrib, false); 109 upgradeCode = this.Core.GetAttributeGuidValue(sourceLineNumbers, attrib, false);
70 break; 110 break;
@@ -140,6 +180,19 @@ namespace WixToolset.Core
140 this.AddProperty(sourceLineNumbers, new Identifier(AccessModifier.Public, "UpgradeCode"), upgradeCode, false, false, false, true); 180 this.AddProperty(sourceLineNumbers, new Identifier(AccessModifier.Public, "UpgradeCode"), upgradeCode, false, false, false, true);
141 } 181 }
142 182
183 if (isPerMachine)
184 {
185 this.AddProperty(sourceLineNumbers, new Identifier(AccessModifier.Public, "ALLUSERS"), "1", false, false, false, false);
186 }
187
188 this.ValidateAndAddCommonSummaryInformationSymbols(sourceLineNumbers, msiVersion, platform);
189
190 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
191 {
192 PropertyId = SummaryInformationType.WordCount,
193 Value = sourceBits.ToString(CultureInfo.InvariantCulture)
194 });
195
143 var contextValues = new Dictionary<string, string> 196 var contextValues = new Dictionary<string, string>
144 { 197 {
145 ["ProductLanguage"] = this.activeLanguage, 198 ["ProductLanguage"] = this.activeLanguage,
@@ -240,9 +293,6 @@ namespace WixToolset.Core
240 case "MediaTemplate": 293 case "MediaTemplate":
241 this.ParseMediaTemplateElement(child, null); 294 this.ParseMediaTemplateElement(child, null);
242 break; 295 break;
243 case "Package":
244 this.ParsePackageElement(child, manufacturer, null);
245 break;
246 case "PackageCertificates": 296 case "PackageCertificates":
247 case "PatchCertificates": 297 case "PatchCertificates":
248 this.ParseCertificatesElement(child); 298 this.ParseCertificatesElement(child);
@@ -263,6 +313,9 @@ namespace WixToolset.Core
263 string parentName = null; 313 string parentName = null;
264 this.ParseSFPCatalogElement(child, ref parentName); 314 this.ParseSFPCatalogElement(child, ref parentName);
265 break; 315 break;
316 case "SummaryInformation":
317 this.ParseSummaryInformationElement(child, ref isCodepageSet, ref isPackageNameSet, ref isKeywordsSet, ref isPackageAuthorSet);
318 break;
266 case "SymbolPath": 319 case "SymbolPath":
267 if (null != symbols) 320 if (null != symbols)
268 { 321 {
@@ -298,6 +351,42 @@ namespace WixToolset.Core
298 351
299 if (!this.Core.EncounteredError) 352 if (!this.Core.EncounteredError)
300 { 353 {
354 if (!isCodepageSet)
355 {
356 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
357 {
358 PropertyId = SummaryInformationType.Codepage,
359 Value = "1252"
360 });
361 }
362
363 if (!isPackageNameSet)
364 {
365 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
366 {
367 PropertyId = SummaryInformationType.Subject,
368 Value = this.activeName
369 });
370 }
371
372 if (!isPackageAuthorSet)
373 {
374 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
375 {
376 PropertyId = SummaryInformationType.Author,
377 Value = manufacturer
378 });
379 }
380
381 if (!isKeywordsSet)
382 {
383 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
384 {
385 PropertyId = SummaryInformationType.Keywords,
386 Value = "Installer"
387 });
388 }
389
301 if (null != symbols) 390 if (null != symbols)
302 { 391 {
303 this.Core.AddSymbol(new WixDeltaPatchSymbolPathsSymbol(sourceLineNumbers) 392 this.Core.AddSymbol(new WixDeltaPatchSymbolPathsSymbol(sourceLineNumbers)
@@ -315,6 +404,74 @@ namespace WixToolset.Core
315 } 404 }
316 } 405 }
317 406
407 private void GetDefaultPlatformAndInstallerVersion(out string platform, out int msiVersion)
408 {
409 // Let's default to a modern version of MSI. Users can override,
410 // of course, subject to platform-specific limitations.
411 msiVersion = 500;
412
413 switch (this.CurrentPlatform)
414 {
415 case Platform.X86:
416 platform = "Intel";
417 break;
418 case Platform.X64:
419 platform = "x64";
420 break;
421 case Platform.ARM64:
422 platform = "Arm64";
423 break;
424 default:
425 throw new ArgumentException("Unknown platform enumeration '{0}' encountered.", this.CurrentPlatform.ToString());
426 }
427 }
428
429 private void ValidateAndAddCommonSummaryInformationSymbols(SourceLineNumber sourceLineNumbers, int msiVersion, string platform)
430 {
431 if (String.Equals(platform, "X64", StringComparison.OrdinalIgnoreCase) && 200 > msiVersion)
432 {
433 msiVersion = 200;
434 this.Core.Write(WarningMessages.RequiresMsi200for64bitPackage(sourceLineNumbers));
435 }
436
437 if (String.Equals(platform, "Arm64", StringComparison.OrdinalIgnoreCase) && 500 > msiVersion)
438 {
439 msiVersion = 500;
440 this.Core.Write(WarningMessages.RequiresMsi500forArmPackage(sourceLineNumbers));
441 }
442
443 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
444 {
445 PropertyId = SummaryInformationType.Comments,
446 Value = String.Format(CultureInfo.InvariantCulture, "This installer database contains the logic and data required to install {0}.", this.activeName)
447 });
448
449 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
450 {
451 PropertyId = SummaryInformationType.Title,
452 Value = "Installation Database"
453 });
454
455 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
456 {
457 PropertyId = SummaryInformationType.PlatformAndLanguage,
458 Value = String.Format(CultureInfo.InvariantCulture, "{0};{1}", platform, this.activeLanguage)
459 });
460
461 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
462 {
463 PropertyId = SummaryInformationType.WindowsInstallerVersion,
464 Value = msiVersion.ToString(CultureInfo.InvariantCulture)
465 });
466
467 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
468 {
469 PropertyId = SummaryInformationType.Security,
470 Value = "2"
471 });
472
473 }
474
318 /// <summary> 475 /// <summary>
319 /// Parses an odbc driver or translator element. 476 /// Parses an odbc driver or translator element.
320 /// </summary> 477 /// </summary>
@@ -615,40 +772,13 @@ namespace WixToolset.Core
615 /// <param name="node">Element to parse.</param> 772 /// <param name="node">Element to parse.</param>
616 /// <param name="productAuthor">Default package author.</param> 773 /// <param name="productAuthor">Default package author.</param>
617 /// <param name="moduleId">The module guid - this is necessary until Module/@Guid is removed.</param> 774 /// <param name="moduleId">The module guid - this is necessary until Module/@Guid is removed.</param>
618 private void ParsePackageElement(XElement node, string productAuthor, string moduleId) 775 private void ParseSummaryInformationElement(XElement node, ref bool isCodepageSet, ref bool isPackageNameSet, ref bool isKeywordsSet, ref bool isPackageAuthorSet)
619 { 776 {
620 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); 777 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
621 var codepage = "1252"; 778 string codepage = null;
622 var comments = String.Format(CultureInfo.InvariantCulture, "This installer database contains the logic and data required to install {0}.", this.activeName); 779 string packageName = null;
623 var keywords = "Installer"; 780 string keywords = null;
624 var msiVersion = 100; // lowest released version, really should be specified 781 string packageAuthor = null;
625 var packageAuthor = productAuthor;
626 string packageCode = null;
627 var packageLanguages = this.activeLanguage;
628 var packageName = this.activeName;
629 string platform = null;
630 string platformValue = null;
631 var security = YesNoDefaultType.Default;
632 var sourceBits = (this.compilingModule ? 2 : 0);
633 var installPrivilegeSeen = false;
634 var installScopeSeen = false;
635
636 switch (this.CurrentPlatform)
637 {
638 case Platform.X86:
639 platform = "Intel";
640 break;
641 case Platform.X64:
642 platform = "x64";
643 msiVersion = 200;
644 break;
645 case Platform.ARM64:
646 platform = "Arm64";
647 msiVersion = 500;
648 break;
649 default:
650 throw new ArgumentException("Unknown platform enumeration '{0}' encountered.", this.CurrentPlatform.ToString());
651 }
652 782
653 foreach (var attrib in node.Attributes()) 783 foreach (var attrib in node.Attributes())
654 { 784 {
@@ -656,83 +786,15 @@ namespace WixToolset.Core
656 { 786 {
657 switch (attrib.Name.LocalName) 787 switch (attrib.Name.LocalName)
658 { 788 {
659 case "Id": 789 case "Codepage":
660 packageCode = this.Core.GetAttributeGuidValue(sourceLineNumbers, attrib, this.compilingProduct); 790 codepage = this.Core.GetAttributeLocalizableCodePageValue(sourceLineNumbers, attrib, true);
661 break;
662 case "AdminImage":
663 if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib))
664 {
665 sourceBits |= 4;
666 }
667 break;
668 case "Comments":
669 comments = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
670 break;
671 case "Compressed":
672 // merge modules must always be compressed, so this attribute is invalid
673 if (this.compilingModule)
674 {
675 this.Core.Write(WarningMessages.DeprecatedPackageCompressedAttribute(sourceLineNumbers));
676 // this.core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, "Compressed", "Module"));
677 }
678 else if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib))
679 {
680 sourceBits |= 2;
681 }
682 break; 791 break;
683 case "Description": 792 case "Description":
684 packageName = this.Core.GetAttributeValue(sourceLineNumbers, attrib); 793 packageName = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
685 break; 794 break;
686 case "InstallPrivileges":
687 var installPrivileges = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
688 switch (installPrivileges)
689 {
690 case "elevated":
691 // this is the default setting
692 installPrivilegeSeen = true;
693 break;
694 case "limited":
695 sourceBits |= 8;
696 installPrivilegeSeen = true;
697 break;
698 case "":
699 break;
700 default:
701 this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, installPrivileges, "elevated", "limited"));
702 break;
703 }
704 break;
705 case "InstallScope":
706 var installScope = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
707 switch (installScope)
708 {
709 case "perMachine":
710 this.Core.AddSymbol(new PropertySymbol(sourceLineNumbers, new Identifier(AccessModifier.Public, "ALLUSERS"))
711 {
712 Value = "1"
713 });
714 installScopeSeen = true;
715 break;
716 case "perUser":
717 sourceBits |= 8;
718 installScopeSeen = true;
719 break;
720 case "":
721 break;
722 default:
723 this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, installScope, "perMachine", "perUser"));
724 break;
725 }
726 break;
727 case "InstallerVersion":
728 msiVersion = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, Int32.MaxValue);
729 break;
730 case "Keywords": 795 case "Keywords":
731 keywords = this.Core.GetAttributeValue(sourceLineNumbers, attrib); 796 keywords = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
732 break; 797 break;
733 case "Languages":
734 packageLanguages = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
735 break;
736 case "Manufacturer": 798 case "Manufacturer":
737 packageAuthor = this.Core.GetAttributeValue(sourceLineNumbers, attrib); 799 packageAuthor = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
738 if ("PUT-COMPANY-NAME-HERE" == packageAuthor) 800 if ("PUT-COMPANY-NAME-HERE" == packageAuthor)
@@ -740,56 +802,6 @@ namespace WixToolset.Core
740 this.Core.Write(WarningMessages.PlaceholderValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, packageAuthor)); 802 this.Core.Write(WarningMessages.PlaceholderValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, packageAuthor));
741 } 803 }
742 break; 804 break;
743 case "Platform":
744 if (null != platformValue)
745 {
746 this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, "Platforms"));
747 }
748
749 platformValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
750 switch (platformValue)
751 {
752 case "intel":
753 this.Core.Write(WarningMessages.DeprecatedAttributeValue(sourceLineNumbers, platformValue, node.Name.LocalName, attrib.Name.LocalName, "x86"));
754 goto case "x86";
755 case "x86":
756 platform = "Intel";
757 break;
758 case "x64":
759 platform = "x64";
760 break;
761 case "arm64":
762 platform = "Arm64";
763 break;
764 case "":
765 break;
766 default:
767 this.Core.Write(ErrorMessages.InvalidPlatformValue(sourceLineNumbers, platformValue));
768 break;
769 }
770 break;
771 case "Platforms":
772 if (null != platformValue)
773 {
774 this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, "Platform"));
775 }
776
777 this.Core.Write(WarningMessages.DeprecatedAttribute(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, "Platform"));
778 platformValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
779 platform = platformValue;
780 break;
781 case "ReadOnly":
782 security = this.Core.GetAttributeYesNoDefaultValue(sourceLineNumbers, attrib);
783 break;
784 case "ShortNames":
785 if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib))
786 {
787 sourceBits |= 1;
788 }
789 break;
790 case "SummaryCodepage":
791 codepage = this.Core.GetAttributeLocalizableCodePageValue(sourceLineNumbers, attrib, true);
792 break;
793 default: 805 default:
794 this.Core.UnexpectedAttribute(node, attrib); 806 this.Core.UnexpectedAttribute(node, attrib);
795 break; 807 break;
@@ -801,127 +813,50 @@ namespace WixToolset.Core
801 } 813 }
802 } 814 }
803 815
804 if (installPrivilegeSeen && installScopeSeen) 816 this.Core.ParseForExtensionElements(node);
805 {
806 this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, node.Name.LocalName, "InstallPrivileges", "InstallScope"));
807 }
808
809 if (String.Equals(platform, "X64", StringComparison.OrdinalIgnoreCase) && 200 > msiVersion)
810 {
811 msiVersion = 200;
812 this.Core.Write(WarningMessages.RequiresMsi200for64bitPackage(sourceLineNumbers));
813 }
814
815 if (String.Equals(platform, "Arm64", StringComparison.OrdinalIgnoreCase) && 500 > msiVersion)
816 {
817 msiVersion = 500;
818 this.Core.Write(WarningMessages.RequiresMsi500forArmPackage(sourceLineNumbers));
819 }
820
821 if (null == packageAuthor)
822 {
823 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Manufacturer"));
824 }
825 817
826 if (this.compilingModule) 818 if (!this.Core.EncounteredError)
827 { 819 {
828 if (null == packageCode) 820 if (null != codepage)
829 { 821 {
830 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Id")); 822 isCodepageSet = true;
823 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
824 {
825 PropertyId = SummaryInformationType.Codepage,
826 Value = codepage
827 });
831 } 828 }
832 829
833 // merge modules use the modularization guid as the package code 830 if (null != packageName)
834 if (null != moduleId)
835 { 831 {
836 packageCode = moduleId; 832 isPackageNameSet = true;
833 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
834 {
835 PropertyId = SummaryInformationType.Subject,
836 Value = packageName
837 });
837 } 838 }
838 839
839 // merge modules are always compressed 840 if (null != packageAuthor)
840 sourceBits = 2;
841 }
842 else // product
843 {
844 if (null == packageCode)
845 { 841 {
846 packageCode = "*"; 842 isPackageAuthorSet = true;
843 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
844 {
845 PropertyId = SummaryInformationType.Author,
846 Value = packageAuthor
847 });
847 } 848 }
848 849
849 if ("*" != packageCode) 850 if (null != keywords)
850 { 851 {
851 this.Core.Write(WarningMessages.PackageCodeSet(sourceLineNumbers)); 852 isKeywordsSet = true;
853 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
854 {
855 PropertyId = SummaryInformationType.Keywords,
856 Value = keywords
857 });
852 } 858 }
853 } 859 }
854
855 this.Core.ParseForExtensionElements(node);
856
857 if (!this.Core.EncounteredError)
858 {
859 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
860 {
861 PropertyId = SummaryInformationType.Codepage,
862 Value = codepage
863 });
864
865 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
866 {
867 PropertyId = SummaryInformationType.Title,
868 Value = "Installation Database"
869 });
870
871 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
872 {
873 PropertyId = SummaryInformationType.Subject,
874 Value = packageName
875 });
876
877 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
878 {
879 PropertyId = SummaryInformationType.Author,
880 Value = packageAuthor
881 });
882
883 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
884 {
885 PropertyId = SummaryInformationType.Keywords,
886 Value = keywords
887 });
888
889 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
890 {
891 PropertyId = SummaryInformationType.Comments,
892 Value = comments
893 });
894
895 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
896 {
897 PropertyId = SummaryInformationType.PlatformAndLanguage,
898 Value = String.Format(CultureInfo.InvariantCulture, "{0};{1}", platform, packageLanguages)
899 });
900
901 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
902 {
903 PropertyId = SummaryInformationType.PackageCode,
904 Value = packageCode
905 });
906
907 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
908 {
909 PropertyId = SummaryInformationType.WindowsInstallerVersion,
910 Value = msiVersion.ToString(CultureInfo.InvariantCulture)
911 });
912
913 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
914 {
915 PropertyId = SummaryInformationType.WordCount,
916 Value = sourceBits.ToString(CultureInfo.InvariantCulture)
917 });
918
919 this.Core.AddSymbol(new SummaryInformationSymbol(sourceLineNumbers)
920 {
921 PropertyId = SummaryInformationType.Security,
922 Value = YesNoDefaultType.No == security ? "0" : YesNoDefaultType.Yes == security ? "4" : "2"
923 });
924 }
925 } 860 }
926 861
927 /// <summary> 862 /// <summary>
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
diff --git a/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs b/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs
index b038812d..e18990d3 100644
--- a/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs
+++ b/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs
@@ -34,8 +34,8 @@ namespace WixToolsetTest.CoreIntegration
34 Assert.NotNull(result.Document); 34 Assert.NotNull(result.Document);
35 Assert.Equal(includeFile, includedFile.Path); 35 Assert.Equal(includeFile, includedFile.Path);
36 Assert.Equal(sourcePath, includedFile.SourceLineNumbers.FileName); 36 Assert.Equal(sourcePath, includedFile.SourceLineNumbers.FileName);
37 Assert.Equal(2, includedFile.SourceLineNumbers.LineNumber.Value); 37 Assert.Equal(1, includedFile.SourceLineNumbers.LineNumber.Value);
38 Assert.Equal($"{sourcePath}*2", includedFile.SourceLineNumbers.QualifiedFileName); 38 Assert.Equal($"{sourcePath}*1", includedFile.SourceLineNumbers.QualifiedFileName);
39 Assert.Null(includedFile.SourceLineNumbers.Parent); 39 Assert.Null(includedFile.SourceLineNumbers.Parent);
40 } 40 }
41 41
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/DecompiledNestedDirSearchUnderRegSearch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/DecompiledNestedDirSearchUnderRegSearch.wxs
index 26649485..8d1e5de2 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/DecompiledNestedDirSearchUnderRegSearch.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/DecompiledNestedDirSearchUnderRegSearch.wxs
@@ -1,7 +1,5 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0" ProductCode="{33C58183-7333-4257-AEFD-6705DA66E617}">
3 <Product Id="{33C58183-7333-4257-AEFD-6705DA66E617}" Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0">
4 <Package Description="MsiPackage" InstallerVersion="500" Languages="1033" Manufacturer="Example Corporation" Platform="x86" />
5 <Directory Id="TARGETDIR" Name="SourceDir"> 3 <Directory Id="TARGETDIR" Name="SourceDir">
6 <Directory Id="ProgramFilesFolder"> 4 <Directory Id="ProgramFilesFolder">
7 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="ykd0udtb"> 5 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="ykd0udtb">
@@ -16,7 +14,6 @@
16 </Feature> 14 </Feature>
17 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 15 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
18 <Media Id="1" /> 16 <Media Id="1" />
19 <Property Id="ALLUSERS" Value="1" />
20 <Property Id="SAMPLEREGFOUND"> 17 <Property Id="SAMPLEREGFOUND">
21 <RegistrySearch Id="RegSearch" Root="HKLM" Key="Reg" Type="raw" Win64="no" /> 18 <RegistrySearch Id="RegSearch" Root="HKLM" Key="Reg" Type="raw" Win64="no" />
22 </Property> 19 </Property>
@@ -43,5 +40,5 @@
43 </DirectorySearch> 40 </DirectorySearch>
44 </RegistrySearch> 41 </RegistrySearch>
45 </Property> 42 </Property>
46 </Product> 43 </Package>
47</Wix> \ No newline at end of file 44</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Package.wxs
index dbce4c71..50282522 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Package.wxs
@@ -1,14 +1,13 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="AssemblyMsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="AssemblyMsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
8 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9 <ComponentGroupRef Id="ProductComponents" /> 8 <ComponentGroupRef Id="ProductComponents" />
10 </Feature> 9 </Feature>
11 </Product> 10 </Package>
12 11
13 <Fragment> 12 <Fragment>
14 <Directory Id="TARGETDIR" Name="SourceDir"> 13 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/Package.wxs
index c1cf55c2..1d7ebb94 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/Package.wxs
@@ -1,7 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Language="1033" Version="1.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
@@ -13,7 +12,7 @@
13 <ComponentGroupRef Id="ProductComponents.x64" /> 12 <ComponentGroupRef Id="ProductComponents.x64" />
14 <ComponentGroupRef Id="ProductComponents.arm" /> 13 <ComponentGroupRef Id="ProductComponents.arm" />
15 </Feature> 14 </Feature>
16 </Product> 15 </Package>
17 16
18 <Fragment> 17 <Fragment>
19 <Directory Id="TARGETDIR" Name="SourceDir"> 18 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Class/DecompiledOldClassTableDef.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Class/DecompiledOldClassTableDef.wxs
index 86d41c50..08ced0c2 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Class/DecompiledOldClassTableDef.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Class/DecompiledOldClassTableDef.wxs
@@ -1,7 +1,5 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0" ProductCode="{FE17A505-11A9-44D2-8D94-EB6BEAB8FF93}">
3 <Product Id="{FE17A505-11A9-44D2-8D94-EB6BEAB8FF93}" Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0">
4 <Package Description="MsiPackage" InstallerVersion="500" Languages="1033" Manufacturer="Example Corporation" Platform="x86" />
5 <Directory Id="TARGETDIR" Name="SourceDir"> 3 <Directory Id="TARGETDIR" Name="SourceDir">
6 <Directory Id="ProgramFilesFolder"> 4 <Directory Id="ProgramFilesFolder">
7 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq"> 5 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq">
@@ -22,6 +20,5 @@
22 </Feature> 20 </Feature>
23 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 21 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
24 <Media Id="1" /> 22 <Media Id="1" />
25 <Property Id="ALLUSERS" Value="1" /> 23 </Package>
26 </Product>
27</Wix> \ No newline at end of file 24</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/Package.wxs
index f3dd9a02..23923426 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/Package.wxs
@@ -1,7 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
@@ -13,7 +12,7 @@
13 <ComponentGroupRef Id="ProductComponents" /> 12 <ComponentGroupRef Id="ProductComponents" />
14 <ComponentGroupRef Id="OtherComponents" /> 13 <ComponentGroupRef Id="OtherComponents" />
15 </Feature> 14 </Feature>
16 </Product> 15 </Package>
17 16
18 <Fragment> 17 <Fragment>
19 <Directory Id="TARGETDIR" Name="SourceDir"> 18 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Components/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Components/Package.wxs
index 28d564e2..0607c718 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Components/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Components/Package.wxs
@@ -1,14 +1,13 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
8 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9 <ComponentGroupRef Id="ProductComponents" /> 8 <ComponentGroupRef Id="ProductComponents" />
10 </Feature> 9 </Feature>
11 </Product> 10 </Package>
12 11
13 <Fragment> 12 <Fragment>
14 <Directory Id="TARGETDIR" Name="SourceDir"> 13 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable-Expected.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable-Expected.wxs
index 22036ae5..f87c9387 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable-Expected.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable-Expected.wxs
@@ -1,7 +1,5 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0" ProductCode="{83F9C623-26FE-42AB-951E-170022117F54}">
3 <Product Id="{83F9C623-26FE-42AB-951E-170022117F54}" Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0">
4 <Package Description="MsiPackage" InstallerVersion="500" Languages="1033" Manufacturer="Example Corporation" Platform="x86" />
5 <CustomTable Id="CustomTable1"> 3 <CustomTable Id="CustomTable1">
6 <Column Id="Column1" PrimaryKey="yes" Type="string" Width="0" Category="text" Description="The first custom column." /> 4 <Column Id="Column1" PrimaryKey="yes" Type="string" Width="0" Category="text" Description="The first custom column." />
7 <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" Description="The custom table's Component reference" /> 5 <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" Description="The custom table's Component reference" />
@@ -30,6 +28,5 @@
30 </Feature> 28 </Feature>
31 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 29 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
32 <Media Id="1" /> 30 <Media Id="1" />
33 <Property Id="ALLUSERS" Value="1" /> 31 </Package>
34 </Product>
35</Wix> 32</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/Expected.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/Expected.wxs
index fd6f81ca..e2557fe1 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/Expected.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/Expected.wxs
@@ -1,7 +1,5 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Codepage="65001" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{047730A5-30FE-4A62-A520-DA9381B8226A}" Version="1.0.0.0" Compressed="yes" InstallerVersion="200" ProductCode="{6F9B5694-F0F1-437C-919B-0D2DAF2D9DEA}">
3 <Product Id="{6F9B5694-F0F1-437C-919B-0D2DAF2D9DEA}" Codepage="65001" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{047730A5-30FE-4A62-A520-DA9381B8226A}" Version="1.0.0.0">
4 <Package Compressed="yes" Description="MsiPackage" InstallerVersion="200" Languages="1033" Manufacturer="Example Corporation" Platform="x86" />
5 <Directory Id="TARGETDIR" Name="SourceDir"> 3 <Directory Id="TARGETDIR" Name="SourceDir">
6 <Directory Id="ProgramFilesFolder"> 4 <Directory Id="ProgramFilesFolder">
7 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq"> 5 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq">
@@ -16,6 +14,5 @@
16 </Feature> 14 </Feature>
17 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 15 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
18 <Media Id="1" Cabinet="example.cab" /> 16 <Media Id="1" Cabinet="example.cab" />
19 <Property Id="ALLUSERS" Value="1" /> 17 </Package>
20 </Product>
21</Wix> \ No newline at end of file 18</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/Expected.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/Expected.wxs
index b7f5ad07..38ce54b8 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/Expected.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/Expected.wxs
@@ -1,7 +1,5 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Codepage="65001" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{047730A5-30FE-4A62-A520-DA9381B8226A}" Version="1.0.0.0" Compressed="yes" ProductCode="{C51B773A-B3BE-4F29-A8A9-549AAF7FF6EC}">
3 <Product Id="{C51B773A-B3BE-4F29-A8A9-549AAF7FF6EC}" Codepage="65001" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{047730A5-30FE-4A62-A520-DA9381B8226A}" Version="1.0.0.0">
4 <Package Compressed="yes" Description="MsiPackage" InstallerVersion="500" Languages="1033" Manufacturer="Example Corporation" Platform="x64" />
5 <Directory Id="TARGETDIR" Name="SourceDir"> 3 <Directory Id="TARGETDIR" Name="SourceDir">
6 <Directory Id="ProgramFiles64Folder"> 4 <Directory Id="ProgramFiles64Folder">
7 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq"> 5 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq">
@@ -16,6 +14,5 @@
16 </Feature> 14 </Feature>
17 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 15 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
18 <Media Id="1" Cabinet="example.cab" /> 16 <Media Id="1" Cabinet="example.cab" />
19 <Property Id="ALLUSERS" Value="1" /> 17 </Package>
20 </Product>
21</Wix> \ No newline at end of file 18</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/Package.wxs
index 59eeb027..75707f3d 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/Package.wxs
@@ -1,7 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
@@ -11,7 +10,7 @@
11 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 10 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
12 <ComponentGroupRef Id="ProductComponents" /> 11 <ComponentGroupRef Id="ProductComponents" />
13 </Feature> 12 </Feature>
14 </Product> 13 </Package>
15 14
16 <Fragment> 15 <Fragment>
17 <Directory Id="TARGETDIR" Name="SourceDir"> 16 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.wxs
index f20f5f73..b3fd3672 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.wxs
@@ -1,7 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
@@ -12,7 +11,7 @@
12 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 11 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
13 <ComponentGroupRef Id="ProductComponents" /> 12 <ComponentGroupRef Id="ProductComponents" />
14 </Feature> 13 </Feature>
15 </Product> 14 </Package>
16 15
17 <Fragment> 16 <Fragment>
18 <Directory Id="TARGETDIR" Name="SourceDir"> 17 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/Package.wxs
index 3bd14fbb..91ac6537 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/Package.wxs
@@ -1,7 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Language="1033" Version="1.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
@@ -10,7 +9,7 @@
10 <ComponentGroupRef Id="ProductComponents.x64" /> 9 <ComponentGroupRef Id="ProductComponents.x64" />
11 <ComponentGroupRef Id="ProductComponents.arm" /> 10 <ComponentGroupRef Id="ProductComponents.arm" />
12 </Feature> 11 </Feature>
13 </Product> 12 </Package>
14 13
15 <Fragment> 14 <Fragment>
16 <Directory Id="TARGETDIR" Name="SourceDir"> 15 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/Package.wxs
index 59c8b2b3..6269fe9d 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/Package.wxs
@@ -1,15 +1,14 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?include Package.wxi ?>
2<?include Package.wxi ?>
3<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
4 <Product Id="*" Name="MsiPackage" Language="1033" Version="$(var.ProductVersion)" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3 <Package Name="MsiPackage" Language="1033" Version="$(var.ProductVersion)" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
5 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" /> 4
6 5
7 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
8 7
9 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 8 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
10 <ComponentGroupRef Id="ProductComponents" /> 9 <ComponentGroupRef Id="ProductComponents" />
11 </Feature> 10 </Feature>
12 </Product> 11 </Package>
13 12
14 <Fragment> 13 <Fragment>
15 <Directory Id="TARGETDIR" Name="SourceDir"> 14 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/Package.wxs
index e55b3ec6..befab53e 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/Package.wxs
@@ -1,7 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
@@ -14,7 +13,7 @@
14 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 13 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
15 <ComponentGroupRef Id="ProductComponents" /> 14 <ComponentGroupRef Id="ProductComponents" />
16 </Feature> 15 </Feature>
17 </Product> 16 </Package>
18 17
19 <Fragment> 18 <Fragment>
20 <Directory Id="TARGETDIR" Name="SourceDir"> 19 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.wxs
index 025aaaa3..090c7724 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.wxs
@@ -1,7 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 4
6 <Upgrade Id="01120000-00E0-0000-0000-0000000FF1CE"> 5 <Upgrade Id="01120000-00E0-0000-0000-0000000FF1CE">
7 <UpgradeVersion ExcludeLanguages="no" IgnoreRemoveFailure="yes" IncludeMaximum="no" IncludeMinimum="yes" Maximum="13.0.0" Minimum="12.0.0" OnlyDetect="no" Property="BLAHBLAHBLAH" /> 6 <UpgradeVersion ExcludeLanguages="no" IgnoreRemoveFailure="yes" IncludeMaximum="no" IncludeMinimum="yes" Maximum="13.0.0" Minimum="12.0.0" OnlyDetect="no" Property="BLAHBLAHBLAH" />
@@ -15,7 +14,7 @@
15 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 14 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
16 <ComponentGroupRef Id="ProductComponents" /> 15 <ComponentGroupRef Id="ProductComponents" />
17 </Feature> 16 </Feature>
18 </Product> 17 </Package>
19 18
20 <Fragment> 19 <Fragment>
21 <Directory Id="TARGETDIR" Name="SourceDir"> 20 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/Package.wxs
index 44b8c2b5..bc7450e3 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/Package.wxs
@@ -1,7 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="yes" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
@@ -17,7 +16,7 @@
17 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 16 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
18 <ComponentGroupRef Id="ProductComponents" /> 17 <ComponentGroupRef Id="ProductComponents" />
19 </Feature> 18 </Feature>
20 </Product> 19 </Package>
21 20
22 <Fragment> 21 <Fragment>
23 <Directory Id="TARGETDIR" Name="SourceDir"> 22 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/Package.wxs
index cc873a62..6d9e854d 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/Package.wxs
@@ -1,8 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 3
4 <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
5 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
6 4
7 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
8 6
@@ -18,7 +16,7 @@
18 16
19 <!--<CustomActionRef Id="SetFoo" />--> 17 <!--<CustomActionRef Id="SetFoo" />-->
20 18
21 </Product> 19 </Package>
22 20
23 <Fragment Id="SetFoo"> 21 <Fragment Id="SetFoo">
24 <CustomAction Id="SetFoo" Property="FOO" Value="BOB" /> 22 <CustomAction Id="SetFoo" Property="FOO" Value="BOB" />
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Package.wxs
index 4baeb85b..c9dcdd72 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Package.wxs
@@ -1,29 +1,27 @@
1<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Product Id='e703bf17-4765-444c-91fd-88550fa681d4' Name='~Test Package' 2 <Package Name="~Test Package" Version="$(var.V)" Manufacturer="Example Corporation" Language="1033" UpgradeCode="e703bf17-4765-444c-91fd-88550fa681d4" Scope="perMachine" ProductCode="e703bf17-4765-444c-91fd-88550fa681d4">
3 Version='$(var.V)' Manufacturer='Example Corporation' Language='1033' 3
4 UpgradeCode='e703bf17-4765-444c-91fd-88550fa681d4'>
5 <Package InstallScope='perMachine' />
6 4
7 <MajorUpgrade DowngradeErrorMessage='Newer version already installed.' /> 5 <MajorUpgrade DowngradeErrorMessage="Newer version already installed." />
8 6
9 <Directory Id='TARGETDIR' Name='SourceDir'> 7 <Directory Id="TARGETDIR" Name="SourceDir">
10 <Directory Id='ProgramFilesFolder'> 8 <Directory Id="ProgramFilesFolder">
11 <Directory Id='INSTALLFOLDER' Name='~Test App' /> 9 <Directory Id="INSTALLFOLDER" Name="~Test App" />
12 </Directory> 10 </Directory>
13 </Directory> 11 </Directory>
14 12
15 <Feature Id='Main'> 13 <Feature Id="Main">
16 <ComponentGroupRef Id='Components' /> 14 <ComponentGroupRef Id="Components" />
17 </Feature> 15 </Feature>
18 </Product> 16 </Package>
19 17
20 <Fragment> 18 <Fragment>
21 <ComponentGroup Id="Components" Directory='INSTALLFOLDER'> 19 <ComponentGroup Id="Components" Directory="INSTALLFOLDER">
22 <Component Id='A'> 20 <Component Id="A">
23 <File Name='a.txt' Source='Av$(var.A).txt' /> 21 <File Id="a.txt" Name="a.txt" Source="Av$(var.A).txt" />
24 </Component> 22 </Component>
25 <Component Id='B'> 23 <Component Id="B">
26 <File Name='b.txt' Source='Bv$(var.B).txt' /> 24 <File Id="b.txt" Name="b.txt" Source="Bv$(var.B).txt" />
27 </Component> 25 </Component>
28 </ComponentGroup> 26 </ComponentGroup>
29 </Fragment> 27 </Fragment>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Patch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Patch.wxs
index 7c3cff7e..d39170c0 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Patch.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Patch.wxs
@@ -1,23 +1,16 @@
1<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Patch 2 <Patch AllowRemoval="yes" Manufacturer="FireGiant" MoreInfoURL="http://www.example.com/" DisplayName="~Test Patch v$(var.V)" Description="~Test Small Update Patch v($var.V)" Classification="Update">
3 AllowRemoval="yes"
4 Manufacturer="FireGiant"
5 MoreInfoURL="http://www.example.com/"
6 DisplayName="~Test Patch v$(var.V)"
7 Description="~Test Small Update Patch v($var.V)"
8 Classification="Update"
9 >
10 3
11 <Media Id="1" Cabinet="foo.cab"> 4 <Media Id="1" Cabinet="foo.cab">
12 <PatchBaseline Id="RTM"/> 5 <PatchBaseline Id="RTM" />
13 </Media> 6 </Media>
14 7
15 <PatchFamilyRef Id='SamplePatchFamily'/> 8 <PatchFamilyRef Id="SamplePatchFamily" />
16 </Patch> 9 </Patch>
17 10
18 <Fragment> 11 <Fragment>
19 <PatchFamily Id='SamplePatchFamily' Version='$(var.V)' Supersede='yes'> 12 <PatchFamily Id="SamplePatchFamily" Version="$(var.V)" Supersede="yes">
20 <ComponentRef Id="A"/> 13 <ComponentRef Id="A" />
21 </PatchFamily> 14 </PatchFamily>
22 </Fragment> 15 </Fragment>
23</Wix> 16</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/Package.wxs
index ee133ba3..72424986 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/Package.wxs
@@ -1,30 +1,28 @@
1<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Product Id='7d326855-e790-4a94-8611-5351f8321fca' Name='~Test Package' 2 <Package Name="~Test Package" Version="$(var.V)" Manufacturer="Example Corporation" Language="1033" UpgradeCode="7d326855-e790-4a94-8611-5351f8321fca" Compressed="yes" Scope="perMachine" ProductCode="7d326855-e790-4a94-8611-5351f8321fca">
3 Version='$(var.V)' Manufacturer='Example Corporation' Language='1033' 3
4 UpgradeCode='7d326855-e790-4a94-8611-5351f8321fca'>
5 <Package InstallScope='perMachine' Compressed='yes' />
6 4
7 <MajorUpgrade DowngradeErrorMessage='Newer version already installed.' /> 5 <MajorUpgrade DowngradeErrorMessage="Newer version already installed." />
8 <MediaTemplate EmbedCab='yes' /> 6 <MediaTemplate EmbedCab="yes" />
9 7
10 <Directory Id='TARGETDIR' Name='SourceDir'> 8 <Directory Id="TARGETDIR" Name="SourceDir">
11 <Directory Id='ProgramFilesFolder'> 9 <Directory Id="ProgramFilesFolder">
12 <Directory Id='INSTALLFOLDER' Name='~Test App' /> 10 <Directory Id="INSTALLFOLDER" Name="~Test App" />
13 </Directory> 11 </Directory>
14 </Directory> 12 </Directory>
15 13
16 <Feature Id='Main'> 14 <Feature Id="Main">
17 <ComponentGroupRef Id='Components' /> 15 <ComponentGroupRef Id="Components" />
18 </Feature> 16 </Feature>
19 </Product> 17 </Package>
20 18
21 <Fragment> 19 <Fragment>
22 <ComponentGroup Id="Components" Directory='INSTALLFOLDER'> 20 <ComponentGroup Id="Components" Directory="INSTALLFOLDER">
23 <Component> 21 <Component>
24 <File Id='a.txt' Name='a.txt' Source='Av$(var.A).txt' /> 22 <File Id="a.txt" Name="a.txt" Source="Av$(var.A).txt" />
25 </Component> 23 </Component>
26 <Component> 24 <Component>
27 <File Id='b.txt' Name='b.txt' Source='Bv$(var.B).txt' /> 25 <File Id="b.txt" Name="b.txt" Source="Bv$(var.B).txt" />
28 </Component> 26 </Component>
29 </ComponentGroup> 27 </ComponentGroup>
30 </Fragment> 28 </Fragment>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs
index 5b26091a..c902c339 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs
@@ -1,14 +1,13 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="12E4699F-E774-4D05-8A01-5BDD41BBA127" Compressed="no" Scope="perMachine" ProductCode="83f9c623-26fe-42ab-951e-170022117f54">
3 <Product Id="83f9c623-26fe-42ab-951e-170022117f54" Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="12E4699F-E774-4D05-8A01-5BDD41BBA127"> 3
4 <Package InstallerVersion="500" Compressed="no" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 5 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
7 6
8 <Feature Id="ProductFeature" Title="MsiPackageTitle"> 7 <Feature Id="ProductFeature" Title="MsiPackageTitle">
9 <ComponentGroupRef Id="ProductComponents" /> 8 <ComponentGroupRef Id="ProductComponents" />
10 </Feature> 9 </Feature>
11 </Product> 10 </Package>
12 11
13 <Fragment> 12 <Fragment>
14 <Directory Id="INSTALLFOLDER" Name="ProgramFiles6432Folder:\MsiPackage" /> 13 <Directory Id="INSTALLFOLDER" Name="ProgramFiles6432Folder:\MsiPackage" />
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/Package.wxs
index 388a271e..0d2d5032 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/Package.wxs
@@ -1,14 +1,13 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="ProgId" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="ProgId" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
8 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9 <ComponentGroupRef Id="ProductComponents" /> 8 <ComponentGroupRef Id="ProductComponents" />
10 </Feature> 9 </Feature>
11 </Product> 10 </Package>
12 11
13 <Fragment> 12 <Fragment>
14 <Directory Id="TARGETDIR" Name="SourceDir"> 13 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SequenceTables/DecompiledSequenceTables.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SequenceTables/DecompiledSequenceTables.wxs
index b8adf6e4..08af1950 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SequenceTables/DecompiledSequenceTables.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/SequenceTables/DecompiledSequenceTables.wxs
@@ -1,7 +1,5 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0" ProductCode="{74C29381-1915-4948-B8B4-5646806A0BD4}">
3 <Product Id="{74C29381-1915-4948-B8B4-5646806A0BD4}" Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0">
4 <Package Description="MsiPackage" InstallerVersion="500" Languages="1033" Manufacturer="Example Corporation" Platform="x86" />
5 <CustomAction Id="CustomAction2" Property="TestAdvtExecuteSequenceProperty" Value="1" /> 3 <CustomAction Id="CustomAction2" Property="TestAdvtExecuteSequenceProperty" Value="1" />
6 <Directory Id="TARGETDIR" Name="SourceDir"> 4 <Directory Id="TARGETDIR" Name="SourceDir">
7 <Directory Id="ProgramFilesFolder"> 5 <Directory Id="ProgramFilesFolder">
@@ -17,7 +15,6 @@
17 </Feature> 15 </Feature>
18 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 16 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
19 <Media Id="1" /> 17 <Media Id="1" />
20 <Property Id="ALLUSERS" Value="1" />
21 <InstallExecuteSequence> 18 <InstallExecuteSequence>
22 <Custom Action="CustomAction2" After="CostInitialize" /> 19 <Custom Action="CustomAction2" After="CostInitialize" />
23 </InstallExecuteSequence> 20 </InstallExecuteSequence>
@@ -33,5 +30,5 @@
33 <AdvertiseExecuteSequence> 30 <AdvertiseExecuteSequence>
34 <Custom Action="CustomAction2" After="CostInitialize" /> 31 <Custom Action="CustomAction2" After="CostInitialize" />
35 </AdvertiseExecuteSequence> 32 </AdvertiseExecuteSequence>
36 </Product> 33 </Package>
37</Wix> \ No newline at end of file 34</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/Package.wxs
index 879fad35..c8289464 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/Package.wxs
@@ -1,7 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
@@ -10,7 +9,7 @@
10 </Feature> 9 </Feature>
11 10
12 <SetProperty Id="INSTALLLOCATION" Value="[INSTALLFOLDER]" After="CostFinalize" /> 11 <SetProperty Id="INSTALLLOCATION" Value="[INSTALLFOLDER]" After="CostFinalize" />
13 </Product> 12 </Package>
14 13
15 <Fragment> 14 <Fragment>
16 <Directory Id="TARGETDIR" Name="SourceDir"> 15 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/DecompiledShortcuts.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/DecompiledShortcuts.wxs
index 3a9e401c..1b602588 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/DecompiledShortcuts.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/DecompiledShortcuts.wxs
@@ -1,7 +1,5 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0" ProductCode="{6CA94D1D-B568-4ED6-9EBC-3534C85970BB}">
3 <Product Id="{6CA94D1D-B568-4ED6-9EBC-3534C85970BB}" Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0">
4 <Package Description="MsiPackage" InstallerVersion="500" Languages="1033" Manufacturer="Example Corporation" Platform="x86" />
5 <Directory Id="TARGETDIR" Name="SourceDir"> 3 <Directory Id="TARGETDIR" Name="SourceDir">
6 <Directory Id="ProgramFilesFolder"> 4 <Directory Id="ProgramFilesFolder">
7 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="ykd0udtb"> 5 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="ykd0udtb">
@@ -19,6 +17,5 @@
19 </Feature> 17 </Feature>
20 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 18 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
21 <Media Id="1" /> 19 <Media Id="1" />
22 <Property Id="ALLUSERS" Value="1" /> 20 </Package>
23 </Product>
24</Wix> \ No newline at end of file 21</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.wxs
index b04c5d1a..a858b351 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.wxs
@@ -1,14 +1,13 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="yes" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
8 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9 <MergeRef Id="TestMsm" /> 8 <MergeRef Id="TestMsm" />
10 </Feature> 9 </Feature>
11 </Product> 10 </Package>
12 11
13 <Fragment> 12 <Fragment>
14 <Directory Id="TARGETDIR" Name="SourceDir"> 13 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs
index 260339ba..737ac8df 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs
@@ -1,7 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Module Id="MergeModule1" Language="1033" Version="1.0.0.0" Guid="243FB739-4D05-472F-9CFB-EF6B1017B6DE" InstallerVersion="200">
3 <Module Id="MergeModule1" Language="1033" Version="1.0.0.0"> 3 <SummaryInformation Manufacturer="!(loc.Manufacturer)" />
4 <Package Id="243FB739-4D05-472F-9CFB-EF6B1017B6DE" Manufacturer="!(loc.Manufacturer)" InstallerVersion="200" />
5 4
6 <Directory Id="TARGETDIR" Name="SourceDir"> 5 <Directory Id="TARGETDIR" Name="SourceDir">
7 <Directory Id="MergeRedirectFolder"> 6 <Directory Id="MergeRedirectFolder">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/Package.wxs
index 28d564e2..0607c718 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/Package.wxs
@@ -1,14 +1,13 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
8 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9 <ComponentGroupRef Id="ProductComponents" /> 8 <ComponentGroupRef Id="ProductComponents" />
10 </Feature> 9 </Feature>
11 </Product> 10 </Package>
12 11
13 <Fragment> 12 <Fragment>
14 <Directory Id="TARGETDIR" Name="SourceDir"> 13 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.wxs
index c21a669c..852d1aed 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.wxs
@@ -1,7 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Codepage="65001" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="yes" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Codepage="65001" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
@@ -16,7 +15,7 @@
16 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 15 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
17 <ComponentGroupRef Id="ProductComponents" /> 16 <ComponentGroupRef Id="ProductComponents" />
18 </Feature> 17 </Feature>
19 </Product> 18 </Package>
20 19
21 <Fragment> 20 <Fragment>
22 <Directory Id="TARGETDIR" Name="SourceDir"> 21 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/Package.wxs
index 8d49c30e..7de55810 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/Package.wxs
@@ -1,6 +1,4 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?define Foo = "Foo" ?>
2
3<?define Foo = "Foo" ?>
4<?define Foo = "Foo" ?> 2<?define Foo = "Foo" ?>
5 3
6<?define Bar = "Bar" ?> 4<?define Bar = "Bar" ?>
@@ -13,15 +11,15 @@
13<?endif?> 11<?endif?>
14 12
15<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 13<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
16 <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 14 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
17 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" /> 15
18 16
19 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 17 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
20 18
21 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 19 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
22 <ComponentGroupRef Id="ProductComponents" /> 20 <ComponentGroupRef Id="ProductComponents" />
23 </Feature> 21 </Feature>
24 </Product> 22 </Package>
25 23
26 <Fragment> 24 <Fragment>
27 <Directory Id="TARGETDIR" Name="SourceDir"> 25 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/Package.wxs
index bf5223c1..d9714e7a 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/Package.wxs
@@ -1,7 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
@@ -10,7 +9,7 @@
10 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 9 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
11 <ComponentGroupRef Id="ProductComponents" /> 10 <ComponentGroupRef Id="ProductComponents" />
12 </Feature> 11 </Feature>
13 </Product> 12 </Package>
14 13
15 <Fragment> 14 <Fragment>
16 <Directory Id="TARGETDIR" Name="SourceDir"> 15 <Directory Id="TARGETDIR" Name="SourceDir">
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/Package.wxs
index 4c36f3cc..b29a785f 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/Package.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/Package.wxs
@@ -1,14 +1,13 @@
1<?xml version="1.0" encoding="utf-8"?> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <Product Id="*" Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 4
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 6
8 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9 <ComponentGroupRef Id="ProductComponents" /> 8 <ComponentGroupRef Id="ProductComponents" />
10 </Feature> 9 </Feature>
11 </Product> 10 </Package>
12 11
13 <Fragment> 12 <Fragment>
14 <Directory Id="TARGETDIR" Name="SourceDir"> 13 <Directory Id="TARGETDIR" Name="SourceDir">