@joebigelow / wix-1 / commits / 4bb99d4a

Move codepage from section and to package, module, patch symbols

Contributes to wixtoolset/issues#5801

Rob Mensching committed Apr 2, 2021 at 14:28 UTC 4bb99d4a7521f3182b3d8ea9833038dc067db118
10 files changed +321 -185
src/WixToolset.Data/IntermediateSection.cs
+3 -13
@@ -18,13 +18,11 @@ namespace WixToolset.Data
18 /// </summary>
19 /// <param name="id">Identifier for section.</param>
20 /// <param name="type">Type of section.</param>
21 - /// <param name="codepage">Codepage for resulting database.</param>
21 /// <param name="compilationId">Optional compilation identifier</param>
23 - public IntermediateSection(string id, SectionType type, int codepage, string compilationId = null)
22 + public IntermediateSection(string id, SectionType type, string compilationId = null)
23 {
24 this.Id = id;
25 this.Type = type;
27 - this.Codepage = codepage;
26 this.CompilationId = compilationId;
27 this.symbols = new List<IntermediateSymbol>();
28 }
@@ -41,12 +39,6 @@ namespace WixToolset.Data
39 /// <value>Type of section.</value>
40 public SectionType Type { get; }
41
44 - /// <summary>
45 - /// Gets the codepage for the section.
46 - /// </summary>
47 - /// <value>Codepage for the section.</value>
48 - public int Codepage { get; }
49 -
42 /// <summary>
43 /// Gets and sets the identifier of the compilation of the source file containing the section.
44 /// </summary>
@@ -98,7 +90,6 @@ namespace WixToolset.Data
90 /// </summary>
91 internal static IntermediateSection Deserialize(ISymbolDefinitionCreator creator, Uri baseUri, JsonObject jsonObject)
92 {
101 - var codepage = jsonObject.GetValueOrDefault("codepage", 0);
93 var id = jsonObject.GetValueOrDefault<string>("id");
94 var type = jsonObject.GetEnumOrDefault("type", SectionType.Unknown);
95
@@ -107,7 +98,7 @@ namespace WixToolset.Data
98 throw new ArgumentException("JSON object is not a valid section, unknown section type", nameof(type));
99 }
100
110 - var section = new IntermediateSection(id, type, codepage);
101 + var section = new IntermediateSection(id, type);
102
103 var symbolsJson = jsonObject.GetValueOrDefault<JsonArray>("symbols");
104
@@ -124,8 +115,7 @@ namespace WixToolset.Data
115 {
116 var jsonObject = new JsonObject
117 {
127 - { "type", this.Type.ToString().ToLowerInvariant() },
128 - { "codepage", this.Codepage }
118 + { "type", this.Type.ToString().ToLowerInvariant() }
119 };
120
121 if (!String.IsNullOrEmpty(this.Id))
src/WixToolset.Data/Localization.cs
+22 -7
@@ -18,9 +18,10 @@ namespace WixToolset.Data
18 /// <summary>
19 /// Instantiates a new localization object.
20 /// </summary>
21 - public Localization(int codepage, string culture, IDictionary<string, BindVariable> variables, IDictionary<string, LocalizedControl> localizedControls)
21 + public Localization(int? codepage, int? summaryInformationCodepage, string culture, IDictionary<string, BindVariable> variables, IDictionary<string, LocalizedControl> localizedControls)
22 {
23 this.Codepage = codepage;
24 + this.SummaryInformationCodepage = summaryInformationCodepage;
25 this.Culture = culture?.ToLowerInvariant() ?? String.Empty;
26 this.variables = new Dictionary<string, BindVariable>(variables);
27 this.localizedControls = new Dictionary<string, LocalizedControl>(localizedControls);
@@ -30,7 +31,13 @@ namespace WixToolset.Data
31 /// Gets the codepage.
32 /// </summary>
33 /// <value>The codepage.</value>
33 - public int Codepage { get; private set; }
34 + public int? Codepage { get; private set; }
35 +
36 + /// <summary>
37 + /// Gets the summary information codepage.
38 + /// </summary>
39 + /// <value>The summary information codepage.</value>
40 + public int? SummaryInformationCodepage { get; private set; }
41
42 /// <summary>
43 /// Gets the culture.
@@ -52,10 +59,17 @@ namespace WixToolset.Data
59
60 internal JsonObject Serialize()
61 {
55 - var jsonObject = new JsonObject
62 + var jsonObject = new JsonObject();
63 +
64 + if (this.Codepage.HasValue)
65 {
57 - { "codepage", this.Codepage },
58 - };
66 + jsonObject.Add("codepage", this.Codepage.Value);
67 + }
68 +
69 + if (this.SummaryInformationCodepage.HasValue)
70 + {
71 + jsonObject.Add("summaryCodepage", this.SummaryInformationCodepage.Value);
72 + }
73
74 jsonObject.AddIsNotNullOrEmpty("culture", this.Culture);
75
@@ -94,7 +108,8 @@ namespace WixToolset.Data
108
109 internal static Localization Deserialize(JsonObject jsonObject)
110 {
97 - var codepage = jsonObject.GetValueOrDefault("codepage", 0);
111 + var codepage = jsonObject.GetValueOrDefault("codepage", null);
112 + var summaryCodepage = jsonObject.GetValueOrDefault("summaryCodepage", null);
113 var culture = jsonObject.GetValueOrDefault<string>("culture");
114
115 var variables = new Dictionary<string, BindVariable>();
@@ -116,7 +131,7 @@ namespace WixToolset.Data
131 }
132 }
133
119 - return new Localization(codepage, culture, variables, controls);
134 + return new Localization(codepage, summaryCodepage, culture, variables, controls);
135 }
136 }
137 }
src/WixToolset.Data/Symbols/ModuleSignatureSymbol.cs deleted
-60
@@ -1,60 +0,0 @@
1 -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 -
3 -namespace WixToolset.Data
4 -{
5 - using WixToolset.Data.Symbols;
6 -
7 - public static partial class SymbolDefinitions
8 - {
9 - public static readonly IntermediateSymbolDefinition ModuleSignature = new IntermediateSymbolDefinition(
10 - SymbolDefinitionType.ModuleSignature,
11 - new[]
12 - {
13 - new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.ModuleID), IntermediateFieldType.String),
14 - new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.Language), IntermediateFieldType.Number),
15 - new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.Version), IntermediateFieldType.String),
16 - },
17 - typeof(ModuleSignatureSymbol));
18 - }
19 -}
20 -
21 -namespace WixToolset.Data.Symbols
22 -{
23 - public enum ModuleSignatureSymbolFields
24 - {
25 - ModuleID,
26 - Language,
27 - Version,
28 - }
29 -
30 - public class ModuleSignatureSymbol : IntermediateSymbol
31 - {
32 - public ModuleSignatureSymbol() : base(SymbolDefinitions.ModuleSignature, null, null)
33 - {
34 - }
35 -
36 - public ModuleSignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleSignature, sourceLineNumber, id)
37 - {
38 - }
39 -
40 - public IntermediateField this[ModuleSignatureSymbolFields index] => this.Fields[(int)index];
41 -
42 - public string ModuleID
43 - {
44 - get => (string)this.Fields[(int)ModuleSignatureSymbolFields.ModuleID];
45 - set => this.Set((int)ModuleSignatureSymbolFields.ModuleID, value);
46 - }
47 -
48 - public int Language
49 - {
50 - get => (int)this.Fields[(int)ModuleSignatureSymbolFields.Language];
51 - set => this.Set((int)ModuleSignatureSymbolFields.Language, value);
52 - }
53 -
54 - public string Version
55 - {
56 - get => (string)this.Fields[(int)ModuleSignatureSymbolFields.Version];
57 - set => this.Set((int)ModuleSignatureSymbolFields.Version, value);
58 - }
59 - }
60 -}
\ No newline at end of file
src/WixToolset.Data/Symbols/SymbolDefinitions.cs
+9 -5
@@ -56,7 +56,7 @@ namespace WixToolset.Data
56 ModuleDependency,
57 ModuleExclusion,
58 ModuleIgnoreTable,
59 - ModuleSignature,
59 + WixModule,
60 ModuleSubstitution,
61 MoveFile,
62 Assembly,
@@ -172,9 +172,10 @@ namespace WixToolset.Data
172 WixMediaTemplate,
173 WixMerge,
174 WixOrdering,
175 + WixPackage,
176 WixPatchBaseline,
177 WixPatchFamilyGroup,
177 - WixPatchId,
178 + WixPatch,
179 WixPatchRef,
180 WixPatchTarget,
181 WixProductSearch,
@@ -362,8 +363,8 @@ namespace WixToolset.Data
363 case SymbolDefinitionType.ModuleIgnoreTable:
364 return SymbolDefinitions.ModuleIgnoreTable;
365
365 - case SymbolDefinitionType.ModuleSignature:
366 - return SymbolDefinitions.ModuleSignature;
366 + case SymbolDefinitionType.WixModule:
367 + return SymbolDefinitions.WixModule;
368
369 case SymbolDefinitionType.ModuleSubstitution:
370 return SymbolDefinitions.ModuleSubstitution;
@@ -707,13 +708,16 @@ namespace WixToolset.Data
708 case SymbolDefinitionType.WixOrdering:
709 return SymbolDefinitions.WixOrdering;
710
711 + case SymbolDefinitionType.WixPackage:
712 + return SymbolDefinitions.WixPackage;
713 +
714 case SymbolDefinitionType.WixPatchBaseline:
715 return SymbolDefinitions.WixPatchBaseline;
716
717 case SymbolDefinitionType.WixPatchFamilyGroup:
718 return SymbolDefinitions.WixPatchFamilyGroup;
719
716 - case SymbolDefinitionType.WixPatchId:
720 + case SymbolDefinitionType.WixPatch:
721 return SymbolDefinitions.WixPatchId;
722
723 case SymbolDefinitionType.WixPatchRef:
src/WixToolset.Data/Symbols/WixModuleSymbol.cs new
+68
@@ -0,0 +1,68 @@
1 +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 +
3 +namespace WixToolset.Data
4 +{
5 + using WixToolset.Data.Symbols;
6 +
7 + public static partial class SymbolDefinitions
8 + {
9 + public static readonly IntermediateSymbolDefinition WixModule = new IntermediateSymbolDefinition(
10 + SymbolDefinitionType.WixModule,
11 + new[]
12 + {
13 + new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.ModuleId), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.Language), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.Version), IntermediateFieldType.String),
16 + new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.Codepage), IntermediateFieldType.String),
17 + },
18 + typeof(WixModuleSymbol));
19 + }
20 +}
21 +
22 +namespace WixToolset.Data.Symbols
23 +{
24 + public enum WixModuleSymbolFields
25 + {
26 + ModuleId,
27 + Language,
28 + Version,
29 + Codepage,
30 + }
31 +
32 + public class WixModuleSymbol : IntermediateSymbol
33 + {
34 + public WixModuleSymbol() : base(SymbolDefinitions.WixModule, null, null)
35 + {
36 + }
37 +
38 + public WixModuleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixModule, sourceLineNumber, id)
39 + {
40 + }
41 +
42 + public IntermediateField this[WixModuleSymbolFields index] => this.Fields[(int)index];
43 +
44 + public string ModuleId
45 + {
46 + get => (string)this.Fields[(int)WixModuleSymbolFields.ModuleId];
47 + set => this.Set((int)WixModuleSymbolFields.ModuleId, value);
48 + }
49 +
50 + public string Language
51 + {
52 + get => (string)this.Fields[(int)WixModuleSymbolFields.Language];
53 + set => this.Set((int)WixModuleSymbolFields.Language, value);
54 + }
55 +
56 + public string Version
57 + {
58 + get => (string)this.Fields[(int)WixModuleSymbolFields.Version];
59 + set => this.Set((int)WixModuleSymbolFields.Version, value);
60 + }
61 +
62 + public string Codepage
63 + {
64 + get => (string)this.Fields[(int)WixModuleSymbolFields.Codepage];
65 + set => this.Set((int)WixModuleSymbolFields.Codepage, value);
66 + }
67 + }
68 +}
src/WixToolset.Data/Symbols/WixPackageSymbol.cs new
+111
@@ -0,0 +1,111 @@
1 +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 +
3 +namespace WixToolset.Data
4 +{
5 + using WixToolset.Data.Symbols;
6 +
7 + public static partial class SymbolDefinitions
8 + {
9 + public static readonly IntermediateSymbolDefinition WixPackage = new IntermediateSymbolDefinition(
10 + SymbolDefinitionType.WixPackage,
11 + new[]
12 + {
13 + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.PackageId), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.UpgradeCode), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Name), IntermediateFieldType.String),
16 + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Language), IntermediateFieldType.String),
17 + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Version), IntermediateFieldType.String),
18 + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Manufacturer), IntermediateFieldType.String),
19 + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Attributes), IntermediateFieldType.Number),
20 + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Codepage), IntermediateFieldType.String),
21 + },
22 + typeof(WixPackageSymbol));
23 + }
24 +}
25 +
26 +namespace WixToolset.Data.Symbols
27 +{
28 + using System;
29 +
30 + public enum WixPackageSymbolFields
31 + {
32 + PackageId,
33 + UpgradeCode,
34 + Name,
35 + Language,
36 + Version,
37 + Manufacturer,
38 + Attributes,
39 + Codepage,
40 + }
41 +
42 + [Flags]
43 + public enum WixPackageAttributes
44 + {
45 + None = 0x0,
46 + PerMachine = 0x1,
47 + }
48 +
49 + public class WixPackageSymbol : IntermediateSymbol
50 + {
51 + public WixPackageSymbol() : base(SymbolDefinitions.WixPackage, null, null)
52 + {
53 + }
54 +
55 + public WixPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPackage, sourceLineNumber, id)
56 + {
57 + }
58 +
59 + public IntermediateField this[WixPackageSymbolFields index] => this.Fields[(int)index];
60 +
61 + public string PackageId
62 + {
63 + get => (string)this.Fields[(int)WixPackageSymbolFields.PackageId];
64 + set => this.Set((int)WixPackageSymbolFields.PackageId, value);
65 + }
66 +
67 + public string UpgradeCode
68 + {
69 + get => (string)this.Fields[(int)WixPackageSymbolFields.UpgradeCode];
70 + set => this.Set((int)WixPackageSymbolFields.UpgradeCode, value);
71 + }
72 +
73 + public string Name
74 + {
75 + get => (string)this.Fields[(int)WixPackageSymbolFields.Name];
76 + set => this.Set((int)WixPackageSymbolFields.Name, value);
77 + }
78 +
79 + public string Language
80 + {
81 + get => (string)this.Fields[(int)WixPackageSymbolFields.Language];
82 + set => this.Set((int)WixPackageSymbolFields.Language, value);
83 + }
84 +
85 + public string Version
86 + {
87 + get => (string)this.Fields[(int)WixPackageSymbolFields.Version];
88 + set => this.Set((int)WixPackageSymbolFields.Version, value);
89 + }
90 +
91 + public string Manufacturer
92 + {
93 + get => (string)this.Fields[(int)WixPackageSymbolFields.Manufacturer];
94 + set => this.Set((int)WixPackageSymbolFields.Manufacturer, value);
95 + }
96 +
97 + public WixPackageAttributes Attributes
98 + {
99 + get => (WixPackageAttributes)this.Fields[(int)WixPackageSymbolFields.Attributes].AsNumber();
100 + set => this.Set((int)WixPackageSymbolFields.Attributes, (int)value);
101 + }
102 +
103 + public string Codepage
104 + {
105 + get => (string)this.Fields[(int)WixPackageSymbolFields.Codepage];
106 + set => this.Set((int)WixPackageSymbolFields.Codepage, value);
107 + }
108 +
109 + public bool PerMachine => (this.Attributes & WixPackageAttributes.PerMachine) == WixPackageAttributes.PerMachine;
110 + }
111 +}
src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs deleted
-90
@@ -1,90 +0,0 @@
1 -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 -
3 -namespace WixToolset.Data
4 -{
5 - using WixToolset.Data.Symbols;
6 -
7 - public static partial class SymbolDefinitions
8 - {
9 - public static readonly IntermediateSymbolDefinition WixPatchId = new IntermediateSymbolDefinition(
10 - SymbolDefinitionType.WixPatchId,
11 - new[]
12 - {
13 - new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.ClientPatchId), IntermediateFieldType.String),
14 - new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles), IntermediateFieldType.Bool),
15 - new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.ApiPatchingSymbolFlags), IntermediateFieldType.Number),
16 - },
17 - typeof(WixPatchIdSymbol));
18 - }
19 -}
20 -
21 -namespace WixToolset.Data.Symbols
22 -{
23 - using System;
24 -
25 - public enum WixPatchIdSymbolFields
26 - {
27 - ClientPatchId,
28 - OptimizePatchSizeForLargeFiles,
29 - ApiPatchingSymbolFlags,
30 - }
31 -
32 - /// <summary>
33 - /// The following flags are used with PATCH_OPTION_DATA SymbolOptionFlags:
34 - /// </summary>
35 - [Flags]
36 - [CLSCompliant(false)]
37 - public enum PatchSymbolFlags : uint
38 - {
39 - /// <summary>
40 - /// Don't use imagehlp.dll
41 - /// </summary>
42 - PatchSymbolNoImagehlp = 0x00000001,
43 -
44 - /// <summary>
45 - /// Don't fail patch due to imagehlp failures.
46 - /// </summary>
47 - PatchSymbolNoFailures = 0x00000002,
48 -
49 - /// <summary>
50 - /// After matching decorated symbols, try to match remaining by undecorated names.
51 - /// </summary>
52 - PatchSymbolUndecoratedToo = 0x00000004,
53 -
54 - /// <summary>
55 - /// (used internally)
56 - /// </summary>
57 - PatchSymbolReserved = 0x80000000,
58 - }
59 -
60 - public class WixPatchIdSymbol : IntermediateSymbol
61 - {
62 - public WixPatchIdSymbol() : base(SymbolDefinitions.WixPatchId, null, null)
63 - {
64 - }
65 -
66 - public WixPatchIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchId, sourceLineNumber, id)
67 - {
68 - }
69 -
70 - public IntermediateField this[WixPatchIdSymbolFields index] => this.Fields[(int)index];
71 -
72 - public string ClientPatchId
73 - {
74 - get => (string)this.Fields[(int)WixPatchIdSymbolFields.ClientPatchId];
75 - set => this.Set((int)WixPatchIdSymbolFields.ClientPatchId, value);
76 - }
77 -
78 - public bool? OptimizePatchSizeForLargeFiles
79 - {
80 - get => (bool?)this.Fields[(int)WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles];
81 - set => this.Set((int)WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles, value);
82 - }
83 -
84 - public int? ApiPatchingSymbolFlags
85 - {
86 - get => (int?)this.Fields[(int)WixPatchIdSymbolFields.ApiPatchingSymbolFlags];
87 - set => this.Set((int)WixPatchIdSymbolFields.ApiPatchingSymbolFlags, value);
88 - }
89 - }
90 -}
\ No newline at end of file
src/WixToolset.Data/Symbols/WixPatchSymbol.cs new
+98
@@ -0,0 +1,98 @@
1 +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 +
3 +namespace WixToolset.Data
4 +{
5 + using WixToolset.Data.Symbols;
6 +
7 + public static partial class SymbolDefinitions
8 + {
9 + public static readonly IntermediateSymbolDefinition WixPatchId = new IntermediateSymbolDefinition(
10 + SymbolDefinitionType.WixPatch,
11 + new[]
12 + {
13 + new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.ClientPatchId), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.OptimizePatchSizeForLargeFiles), IntermediateFieldType.Bool),
15 + new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.ApiPatchingSymbolFlags), IntermediateFieldType.Number),
16 + new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.Codepage), IntermediateFieldType.String),
17 + },
18 + typeof(WixPatchSymbol));
19 + }
20 +}
21 +
22 +namespace WixToolset.Data.Symbols
23 +{
24 + using System;
25 +
26 + public enum WixPatchSymbolFields
27 + {
28 + ClientPatchId,
29 + OptimizePatchSizeForLargeFiles,
30 + ApiPatchingSymbolFlags,
31 + Codepage,
32 + }
33 +
34 + /// <summary>
35 + /// The following flags are used with PATCH_OPTION_DATA SymbolOptionFlags:
36 + /// </summary>
37 + [Flags]
38 + [CLSCompliant(false)]
39 + public enum PatchSymbolFlags : uint
40 + {
41 + /// <summary>
42 + /// Don't use imagehlp.dll
43 + /// </summary>
44 + PatchSymbolNoImagehlp = 0x00000001,
45 +
46 + /// <summary>
47 + /// Don't fail patch due to imagehlp failures.
48 + /// </summary>
49 + PatchSymbolNoFailures = 0x00000002,
50 +
51 + /// <summary>
52 + /// After matching decorated symbols, try to match remaining by undecorated names.
53 + /// </summary>
54 + PatchSymbolUndecoratedToo = 0x00000004,
55 +
56 + /// <summary>
57 + /// (used internally)
58 + /// </summary>
59 + PatchSymbolReserved = 0x80000000,
60 + }
61 +
62 + public class WixPatchSymbol : IntermediateSymbol
63 + {
64 + public WixPatchSymbol() : base(SymbolDefinitions.WixPatchId, null, null)
65 + {
66 + }
67 +
68 + public WixPatchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchId, sourceLineNumber, id)
69 + {
70 + }
71 +
72 + public IntermediateField this[WixPatchSymbolFields index] => this.Fields[(int)index];
73 +
74 + public string ClientPatchId
75 + {
76 + get => (string)this.Fields[(int)WixPatchSymbolFields.ClientPatchId];
77 + set => this.Set((int)WixPatchSymbolFields.ClientPatchId, value);
78 + }
79 +
80 + public bool? OptimizePatchSizeForLargeFiles
81 + {
82 + get => (bool?)this.Fields[(int)WixPatchSymbolFields.OptimizePatchSizeForLargeFiles];
83 + set => this.Set((int)WixPatchSymbolFields.OptimizePatchSizeForLargeFiles, value);
84 + }
85 +
86 + public int? ApiPatchingSymbolFlags
87 + {
88 + get => (int?)this.Fields[(int)WixPatchSymbolFields.ApiPatchingSymbolFlags];
89 + set => this.Set((int)WixPatchSymbolFields.ApiPatchingSymbolFlags, value);
90 + }
91 +
92 + public string Codepage
93 + {
94 + get => (string)this.Fields[(int)WixPatchSymbolFields.Codepage];
95 + set => this.Set((int)WixPatchSymbolFields.Codepage, value);
96 + }
97 + }
98 +}
\ No newline at end of file
src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs
+1 -1
@@ -1440,7 +1440,7 @@ namespace WixToolset.Data.WindowsInstaller
1440
1441 public static readonly TableDefinition ModuleSignature = new TableDefinition(
1442 "ModuleSignature",
1443 - SymbolDefinitions.ModuleSignature,
1443 + SymbolDefinitions.WixModule,
1444 new[]
1445 {
1446 new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Module identifier (String.GUID).", modularizeType: ColumnModularizeType.Column),
src/test/WixToolsetTest.Data/SerializeFixture.cs
+9 -9
@@ -20,7 +20,7 @@ namespace WixToolsetTest.Data
20 {
21 var sln = new SourceLineNumber("test.wxs", 1);
22
23 - var section = new IntermediateSection("test", SectionType.Product, 65001);
23 + var section = new IntermediateSection("test", SectionType.Product);
24
25 section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent"))
26 {
@@ -62,7 +62,7 @@ namespace WixToolsetTest.Data
62 public void CanUpdateIntermediate()
63 {
64 var sln = new SourceLineNumber("test.wxs", 1);
65 - var section = new IntermediateSection("test", SectionType.Product, 65001);
65 + var section = new IntermediateSection("test", SectionType.Product);
66
67 section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent"))
68 {
@@ -119,7 +119,7 @@ namespace WixToolsetTest.Data
119 {
120 var sln = new SourceLineNumber("test.wxs", 1);
121
122 - var section = new IntermediateSection("test", SectionType.Product, 65001);
122 + var section = new IntermediateSection("test", SectionType.Product);
123
124 var fieldDefs = new[]
125 {
@@ -178,7 +178,7 @@ namespace WixToolsetTest.Data
178 symbol.Set(1, 2);
179 symbol.Set(2, true);
180
181 - var section = new IntermediateSection("test", SectionType.Product, 65001);
181 + var section = new IntermediateSection("test", SectionType.Product);
182 section.AddSymbol(symbol);
183
184 var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null);
@@ -200,7 +200,7 @@ namespace WixToolsetTest.Data
200 symbol2.Set(2, false);
201 symbol2.Set(3, "baz");
202
203 - var section2 = new IntermediateSection("test2", SectionType.Fragment, 65001);
203 + var section2 = new IntermediateSection("test2", SectionType.Fragment);
204 section2.AddSymbol(symbol2);
205
206 var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null);
@@ -261,7 +261,7 @@ namespace WixToolsetTest.Data
261
262 symbol.AddTag("symbol1tag");
263
264 - var section = new IntermediateSection("test", SectionType.Product, 65001);
264 + var section = new IntermediateSection("test", SectionType.Product);
265 section.AddSymbol(symbol);
266
267 var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null);
@@ -289,7 +289,7 @@ namespace WixToolsetTest.Data
289 symbol2.AddTag("symbol2tag1");
290 symbol2.AddTag("symbol2tag2");
291
292 - var section2 = new IntermediateSection("test2", SectionType.Fragment, 65001);
292 + var section2 = new IntermediateSection("test2", SectionType.Fragment);
293 section2.AddSymbol(symbol2);
294
295 var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null);
@@ -351,10 +351,10 @@ namespace WixToolsetTest.Data
351
352 var localizations = new[]
353 {
354 - new Localization(65001, null, bindVariables.ToDictionary(b => b.Id), controls.ToDictionary(c => c.GetKey()))
354 + new Localization(65001, 1252, null, bindVariables.ToDictionary(b => b.Id), controls.ToDictionary(c => c.GetKey()))
355 };
356
357 - var section = new IntermediateSection("test", SectionType.Product, 65001);
357 + var section = new IntermediateSection("test", SectionType.Product);
358
359 section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent"))
360 {