Replace Win64 attribute with Bitness attribute
Closes wixtoolset/#4707
Rob Mensching committed
Feb 11, 2021 at 13:46 UTC
c6e2213e818b869c44c1af7355fc06f45ebf1a1f
17 files changed
+228
-76
src/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs
+6
-6
@@ -3950,12 +3950,12 @@ namespace WixToolset.Core.WindowsInstaller
3950
3951
if (WindowsInstallerConstants.MsidbCustomActionType64BitScript == (type & WindowsInstallerConstants.MsidbCustomActionType64BitScript))
3952
{
3953
- xCustomAction.SetAttributeValue("Win64", "yes");
3953
+ xCustomAction.SetAttributeValue("Bitness", "always64");
3954
}
3955
else if (WindowsInstallerConstants.MsidbCustomActionTypeVBScript == (type & WindowsInstallerConstants.MsidbCustomActionTypeVBScript) ||
3956
WindowsInstallerConstants.MsidbCustomActionTypeJScript == (type & WindowsInstallerConstants.MsidbCustomActionTypeJScript))
3957
{
3958
- xCustomAction.SetAttributeValue("Win64", "no");
3958
+ xCustomAction.SetAttributeValue("Bitness", "always32");
3959
}
3960
3961
switch (type & WindowsInstallerConstants.MsidbCustomActionTypeExecuteBits)
@@ -4191,11 +4191,11 @@ namespace WixToolset.Core.WindowsInstaller
4191
4192
if (WindowsInstallerConstants.MsidbComponentAttributes64bit == (attributes & WindowsInstallerConstants.MsidbComponentAttributes64bit))
4193
{
4194
- xComponent.SetAttributeValue("Win64", "yes");
4194
+ xComponent.SetAttributeValue("Bitness", "always64");
4195
}
4196
else
4197
{
4198
- xComponent.SetAttributeValue("Win64", "no");
4198
+ xComponent.SetAttributeValue("Bitness", "always32");
4199
}
4200
4201
if (WindowsInstallerConstants.MsidbComponentAttributesDisableRegistryReflection == (attributes & WindowsInstallerConstants.MsidbComponentAttributesDisableRegistryReflection))
@@ -6479,12 +6479,12 @@ namespace WixToolset.Core.WindowsInstaller
6479
6480
if (WindowsInstallerConstants.MsidbLocatorType64bit == (type & WindowsInstallerConstants.MsidbLocatorType64bit))
6481
{
6482
- xRegistrySearch.SetAttributeValue("Win64", "yes");
6482
+ xRegistrySearch.SetAttributeValue("Bitness", "always64");
6483
type &= ~WindowsInstallerConstants.MsidbLocatorType64bit;
6484
}
6485
else
6486
{
6487
- xRegistrySearch.SetAttributeValue("Win64", "no");
6487
+ xRegistrySearch.SetAttributeValue("Bitness", "always32");
6488
}
6489
6490
switch (type)
src/WixToolset.Core/CompileContext.cs
+2
@@ -25,6 +25,8 @@ namespace WixToolset.Core
25
26
public Platform Platform { get; set; }
27
28
+ public bool IsCurrentPlatform64Bit => this.Platform == Platform.ARM64 || this.Platform == Platform.X64;
29
+
30
public XDocument Source { get; set; }
31
32
public CancellationToken CancellationToken { get; set; }
src/WixToolset.Core/Compiler.cs
+60
-45
@@ -59,13 +59,9 @@ namespace WixToolset.Core
59
60
internal Compiler(IWixToolsetServiceProvider serviceProvider)
61
{
62
- this.ServiceProvider = serviceProvider;
63
-
62
this.Messaging = serviceProvider.GetService<IMessaging>();
63
}
64
67
- private IWixToolsetServiceProvider ServiceProvider { get; }
68
-
65
public IMessaging Messaging { get; }
66
67
private ICompileContext Context { get; set; }
@@ -78,12 +74,6 @@ namespace WixToolset.Core
74
/// <value>The platform which the compiler will use when defaulting 64-bit attributes and elements.</value>
75
public Platform CurrentPlatform => this.Context.Platform;
76
81
- /// <summary>
82
- /// Gets or sets the platform which the compiler will use when defaulting 64-bit attributes and elements.
83
- /// </summary>
84
- /// <value>The platform which the compiler will use when defaulting 64-bit attributes and elements.</value>
85
- public bool IsCurrentPlatform64Bit => this.Context.Platform == Platform.ARM64 || this.Context.Platform == Platform.X64;
86
-
77
/// <summary>
78
/// Gets or sets the option to show pedantic messages.
79
/// </summary>
@@ -1724,14 +1714,12 @@ namespace WixToolset.Core
1714
private string ParseRegistrySearchElement(XElement node)
1715
{
1716
var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
1727
- var explicitWin64 = false;
1717
Identifier id = null;
1718
string key = null;
1719
string name = null;
1731
- string signature = null;
1720
RegistryRootType? root = null;
1721
RegLocatorType? type = null;
1734
- var search64bit = false;
1722
+ var search64bit = this.Context.IsCurrentPlatform64Bit;
1723
1724
foreach (var attrib in node.Attributes())
1725
{
@@ -1742,6 +1730,24 @@ namespace WixToolset.Core
1730
case "Id":
1731
id = this.Core.GetAttributeIdentifier(sourceLineNumbers, attrib);
1732
break;
1733
+ case "Bitness":
1734
+ var bitnessValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1735
+ switch (bitnessValue)
1736
+ {
1737
+ case "always32":
1738
+ search64bit = false;
1739
+ break;
1740
+ case "always64":
1741
+ search64bit = true;
1742
+ break;
1743
+ case "default":
1744
+ case "":
1745
+ break;
1746
+ default:
1747
+ this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, bitnessValue, "default", "always32", "always64"));
1748
+ break;
1749
+ }
1750
+ break;
1751
case "Key":
1752
key = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1753
break;
@@ -1771,10 +1777,6 @@ namespace WixToolset.Core
1777
break;
1778
}
1779
break;
1774
- case "Win64":
1775
- explicitWin64 = true;
1776
- search64bit = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib);
1777
- break;
1780
default:
1781
this.Core.UnexpectedAttribute(node, attrib);
1782
break;
@@ -1786,11 +1788,6 @@ namespace WixToolset.Core
1788
}
1789
}
1790
1789
- if (!explicitWin64 && this.IsCurrentPlatform64Bit)
1790
- {
1791
- search64bit = true;
1792
- }
1793
-
1791
if (null == id)
1792
{
1793
id = this.Core.CreateIdentifier("reg", root.ToString(), key, name, type.ToString(), search64bit.ToString());
@@ -1811,7 +1808,7 @@ namespace WixToolset.Core
1808
this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Type"));
1809
}
1810
1814
- signature = id.Id;
1811
+ var signature = id.Id;
1812
var oneChild = false;
1813
foreach (var child in node.Elements())
1814
{
@@ -2125,8 +2122,7 @@ namespace WixToolset.Core
2122
var sharedDllRefCount = false;
2123
var transitive = false;
2124
var uninstallWhenSuperseded = false;
2128
- var explicitWin64 = false;
2129
- var win64 = false;
2125
+ var win64 = this.Context.IsCurrentPlatform64Bit;
2126
2127
var multiInstance = false;
2128
var symbols = new List<string>();
@@ -2141,6 +2137,24 @@ namespace WixToolset.Core
2137
case "Id":
2138
id = this.Core.GetAttributeIdentifier(sourceLineNumbers, attrib);
2139
break;
2140
+ case "Bitness":
2141
+ var bitnessValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2142
+ switch (bitnessValue)
2143
+ {
2144
+ case "always32":
2145
+ win64 = false;
2146
+ break;
2147
+ case "always64":
2148
+ win64 = true;
2149
+ break;
2150
+ case "default":
2151
+ case "":
2152
+ break;
2153
+ default:
2154
+ this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, bitnessValue, "default", "always32", "always64"));
2155
+ break;
2156
+ }
2157
+ break;
2158
case "ComPlusFlags":
2159
comPlusBits = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, Int16.MaxValue);
2160
break;
@@ -2240,15 +2254,6 @@ namespace WixToolset.Core
2254
// bits |= MsiInterop.MsidbComponentAttributesUninstallOnSupersedence;
2255
//}
2256
break;
2243
- case "Win64":
2244
- explicitWin64 = true;
2245
- win64 = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib);
2246
- //if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib))
2247
- //{
2248
- // bits |= MsiInterop.MsidbComponentAttributes64bit;
2249
- // win64 = true;
2250
- //}
2251
- break;
2257
default:
2258
this.Core.UnexpectedAttribute(node, attrib);
2259
break;
@@ -2260,12 +2265,6 @@ namespace WixToolset.Core
2265
}
2266
}
2267
2263
- if (!explicitWin64 && this.IsCurrentPlatform64Bit)
2264
- {
2265
- //bits |= MsiInterop.MsidbComponentAttributes64bit;
2266
- win64 = true;
2267
- }
2268
-
2268
if (id == null)
2269
{
2270
// Placeholder id for defaulting Component/@Id to keypath id.
@@ -3157,6 +3156,26 @@ namespace WixToolset.Core
3156
sourceType = CustomActionSourceType.Binary;
3157
this.Core.CreateSimpleReference(sourceLineNumbers, SymbolDefinitions.Binary, source); // add a reference to the appropriate Binary
3158
break;
3159
+ case "Bitness":
3160
+ var bitnessValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
3161
+ switch (bitnessValue)
3162
+ {
3163
+ case "always32":
3164
+ explicitWin64 = true;
3165
+ win64 = false;
3166
+ break;
3167
+ case "always64":
3168
+ explicitWin64 = true;
3169
+ win64 = true;
3170
+ break;
3171
+ case "default":
3172
+ case "":
3173
+ break;
3174
+ default:
3175
+ this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, bitnessValue, "default", "always32", "always64"));
3176
+ break;
3177
+ }
3178
+ break;
3179
case "Directory":
3180
if (null != source)
3181
{
@@ -3345,10 +3364,6 @@ namespace WixToolset.Core
3364
target = this.Core.GetAttributeValue(sourceLineNumbers, attrib, EmptyRule.CanBeEmpty); // one of the few cases where an empty string value is valid
3365
targetType = CustomActionTargetType.VBScript;
3366
break;
3348
- case "Win64":
3349
- explicitWin64 = true;
3350
- win64 = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib);
3351
- break;
3367
default:
3368
this.Core.UnexpectedAttribute(node, attrib);
3369
break;
@@ -3366,7 +3381,7 @@ namespace WixToolset.Core
3381
id = Identifier.Invalid;
3382
}
3383
3369
- if (!explicitWin64 && this.IsCurrentPlatform64Bit && (CustomActionTargetType.VBScript == targetType || CustomActionTargetType.JScript == targetType))
3384
+ if (!explicitWin64 && this.Context.IsCurrentPlatform64Bit && (CustomActionTargetType.VBScript == targetType || CustomActionTargetType.JScript == targetType))
3385
{
3386
win64 = true;
3387
}
src/WixToolset.Core/Compiler_Bundle.cs
+20
-5
@@ -33,7 +33,7 @@ namespace WixToolset.Core
33
Identifier id = null;
34
string key = null;
35
string valueName = null;
36
- var win64 = YesNoType.NotSet;
36
+ var win64 = this.Context.IsCurrentPlatform64Bit;
37
38
foreach (var attrib in node.Attributes())
39
{
@@ -44,15 +44,30 @@ namespace WixToolset.Core
44
case "Id":
45
id = this.Core.GetAttributeIdentifier(sourceLineNumbers, attrib);
46
break;
47
+ case "Bitness":
48
+ var bitnessValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
49
+ switch (bitnessValue)
50
+ {
51
+ case "always32":
52
+ win64 = false;
53
+ break;
54
+ case "always64":
55
+ win64 = true;
56
+ break;
57
+ case "default":
58
+ case "":
59
+ break;
60
+ default:
61
+ this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, bitnessValue, "default", "always32", "always64"));
62
+ break;
63
+ }
64
+ break;
65
case "Key":
66
key = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
67
break;
68
case "Value":
69
valueName = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
70
break;
53
- case "Win64":
54
- win64 = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib);
55
- break;
71
default:
72
this.Core.UnexpectedAttribute(node, attrib);
73
break;
@@ -76,7 +91,7 @@ namespace WixToolset.Core
91
92
var attributes = WixApprovedExeForElevationAttributes.None;
93
79
- if (win64 == YesNoType.Yes)
94
+ if (win64)
95
{
96
attributes |= WixApprovedExeForElevationAttributes.Win64;
97
}
src/test/WixToolsetTest.CoreIntegration/ApprovedExeFixture.cs
new
+64
@@ -0,0 +1,64 @@
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 WixToolsetTest.CoreIntegration
4
+{
5
+ using System.IO;
6
+ using WixBuildTools.TestSupport;
7
+ using WixToolset.Core.TestPackage;
8
+ using Xunit;
9
+
10
+ public class ApprovedExeFixture
11
+ {
12
+ [Fact]
13
+ public void CanBuildWithApprovedExe()
14
+ {
15
+ var folder = TestData.Get(@"TestData");
16
+
17
+ using (var fs = new DisposableFileSystem())
18
+ {
19
+ var baseFolder = fs.GetFolder();
20
+ var intermediateFolder = Path.Combine(baseFolder, "obj");
21
+ var exePath = Path.Combine(baseFolder, @"bin\test.exe");
22
+
23
+ var result = WixRunner.Execute(new[]
24
+ {
25
+ "build",
26
+ Path.Combine(folder, "BundleWithApprovedExe", "Bundle.wxs"),
27
+ "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
28
+ "-bindpath", Path.Combine(folder, ".Data"),
29
+ "-intermediateFolder", intermediateFolder,
30
+ "-o", exePath,
31
+ });
32
+
33
+ Assert.NotEqual(0, result.ExitCode);
34
+ Assert.False(File.Exists(exePath));
35
+ }
36
+ }
37
+
38
+ [Fact]
39
+ public void CanBuildWithApprovedExe64()
40
+ {
41
+ var folder = TestData.Get(@"TestData");
42
+
43
+ using (var fs = new DisposableFileSystem())
44
+ {
45
+ var baseFolder = fs.GetFolder();
46
+ var intermediateFolder = Path.Combine(baseFolder, "obj");
47
+ var exePath = Path.Combine(baseFolder, @"bin\test.exe");
48
+
49
+ var result = WixRunner.Execute(new[]
50
+ {
51
+ "build",
52
+ Path.Combine(folder, "BundleWithApprovedExe", "Bundle64.wxs"),
53
+ "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
54
+ "-bindpath", Path.Combine(folder, ".Data"),
55
+ "-intermediateFolder", intermediateFolder,
56
+ "-o", exePath,
57
+ });
58
+
59
+ Assert.NotEqual(0, result.ExitCode);
60
+ Assert.False(File.Exists(exePath));
61
+ }
62
+ }
63
+ }
64
+}
src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs
+34
@@ -185,6 +185,40 @@ namespace WixToolsetTest.CoreIntegration
185
}
186
}
187
188
+ [Fact]
189
+ public void PopulatesAppSearchTablesFromRegistrySearch64()
190
+ {
191
+ var folder = TestData.Get(@"TestData");
192
+
193
+ using (var fs = new DisposableFileSystem())
194
+ {
195
+ var baseFolder = fs.GetFolder();
196
+ var intermediateFolder = Path.Combine(baseFolder, "obj");
197
+ var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
198
+
199
+ var result = WixRunner.Execute(new[]
200
+ {
201
+ "build",
202
+ Path.Combine(folder, "AppSearch", "RegistrySearch64.wxs"),
203
+ Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
204
+ Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
205
+ "-bindpath", Path.Combine(folder, "SingleFile", "data"),
206
+ "-intermediateFolder", intermediateFolder,
207
+ "-o", msiPath
208
+ });
209
+
210
+ result.AssertSuccess();
211
+
212
+ Assert.True(File.Exists(msiPath));
213
+ var results = Query.QueryDatabase(msiPath, new[] { "AppSearch", "RegLocator" });
214
+ WixAssert.CompareLineByLine(new[]
215
+ {
216
+ "AppSearch:SAMPLEREGFOUND\tSampleRegSearch",
217
+ "RegLocator:SampleRegSearch\t2\tSampleReg\t\t18",
218
+ }, results);
219
+ }
220
+ }
221
+
222
[Fact]
223
public void PopulatesClassTablesWhenIconIndexIsZero()
224
{
src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/DecompiledNestedDirSearchUnderRegSearch.wxs
+6
-6
@@ -1,9 +1,9 @@
1
-<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
1
+<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
<Directory Id="TARGETDIR" Name="SourceDir">
4
<Directory Id="ProgramFilesFolder">
5
<Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="ykd0udtb">
6
- <Component Id="test.txt" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Win64="no">
6
+ <Component Id="test.txt" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Bitness="always32">
7
<File Id="test.txt" Name="test.txt" KeyPath="yes" Source="SourceDir\\MsiPackage\test.txt" />
8
</Component>
9
</Directory>
@@ -15,10 +15,10 @@
15
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
16
<Media Id="1" />
17
<Property Id="SAMPLEREGFOUND">
18
- <RegistrySearch Id="RegSearch" Root="HKLM" Key="Reg" Type="raw" Win64="no" />
18
+ <RegistrySearch Id="RegSearch" Root="HKLM" Key="Reg" Type="raw" Bitness="always32" />
19
</Property>
20
<Property Id="NESTEDDIRFOUND">
21
- <RegistrySearch Id="ARegKeySearch" Root="HKLM" Key="ARegKey" Type="raw" Win64="no">
21
+ <RegistrySearch Id="ARegKeySearch" Root="HKLM" Key="ARegKey" Type="raw" Bitness="always32">
22
<DirectorySearch Id="TopDirSearch" Path="TopDir">
23
<DirectorySearch Id="SecondDirSearch" Path="SecondDir">
24
<DirectorySearch Id="ThirdDirSearch" Path="ThirdDir">
@@ -29,12 +29,12 @@
29
</RegistrySearch>
30
</Property>
31
<Property Id="SAMPLENESTEDDIRFOUND">
32
- <RegistrySearch Id="NestedRegSearch" Root="HKLM" Key="NestedReg" Type="raw" Win64="no">
32
+ <RegistrySearch Id="NestedRegSearch" Root="HKLM" Key="NestedReg" Type="raw" Bitness="always32">
33
<DirectorySearch Id="SampleNestedDirSearch" Path="NestedDir" />
34
</RegistrySearch>
35
</Property>
36
<Property Id="SAMPLEDIRFOUND">
37
- <RegistrySearch Id="SubRegSearch" Root="HKLM" Key="SampleReg" Type="raw" Win64="no">
37
+ <RegistrySearch Id="SubRegSearch" Root="HKLM" Key="SampleReg" Type="raw" Bitness="always32">
38
<DirectorySearch Id="SampleDirSearch" Path="SampleDir">
39
<DirectorySearch Id="SubDirSearch" Path="Subdir" />
40
</DirectorySearch>
src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/RegistrySearch64.wxs
new
+12
@@ -0,0 +1,12 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3
+ <Fragment>
4
+ <ComponentGroup Id="ProductComponents">
5
+ <ComponentGroupRef Id="MinimalComponentGroup"></ComponentGroupRef>
6
+ </ComponentGroup>
7
+
8
+ <Property Id="SAMPLEREGFOUND">
9
+ <RegistrySearch Id="SampleRegSearch" Root="HKLM" Key="SampleReg" Type="raw" Bitness="always64"></RegistrySearch>
10
+ </Property>
11
+ </Fragment>
12
+</Wix>
src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithApprovedExe/Bundle.wxs
new
+5
@@ -0,0 +1,5 @@
1
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2
+ <Bundle Name="BurnBundle" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="B94478B1-E1F3-4700-9CE8-6AA090854AEC">
3
+ <ApprovedExeForElevation Id="TestExe" Key="WixToolset\BurnTesting" Value="Test" Bitness="always32" />
4
+ </Bundle>
5
+</Wix>
\ No newline at end of file
src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithApprovedExe/Bundle64.wxs
new
+5
@@ -0,0 +1,5 @@
1
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2
+ <Bundle Name="BurnBundle64" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="B94478B1-E1F3-4700-9CE8-6AA090854AEC">
3
+ <ApprovedExeForElevation Id="TestExe" Key="WixToolset\BurnTesting" Value="Test" Bitness="always64" />
4
+ </Bundle>
5
+</Wix>
\ No newline at end of file
src/test/WixToolsetTest.CoreIntegration/TestData/Class/DecompiledOldClassTableDef.wxs
+2
-2
@@ -1,9 +1,9 @@
1
-<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
1
+<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
<Directory Id="TARGETDIR" Name="SourceDir">
4
<Directory Id="ProgramFilesFolder">
5
<Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq">
6
- <Component Id="ProgIdComp" Guid="{5B3B3FC1-533D-4C29-BFB3-0E88B51E59D8}" Win64="no">
6
+ <Component Id="ProgIdComp" Guid="{5B3B3FC1-533D-4C29-BFB3-0E88B51E59D8}" Bitness="always32">
7
<Class Id="{F12A6F69-117F-471F-AE73-F8E74218F498}" Context="LocalServer32" Description="FakeClassF12A" Advertise="yes">
8
<ProgId Id="73E7DF7E-EFAC-4E11-90E2-6EBAEB8DE58D" Description="FakeClassF12A" Advertise="yes" />
9
</Class>
src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable-Expected.wxs
+2
-2
@@ -1,4 +1,4 @@
1
-<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
1
+<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
<CustomTable Id="CustomTable1">
4
<Column Id="Column1" PrimaryKey="yes" Type="string" Width="0" Category="text" Description="The first custom column." />
@@ -16,7 +16,7 @@
16
<Directory Id="ProgramFilesFolder" Name="PFiles">
17
<Directory Id="ProgramFiles6432Folder">
18
<Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="1egc1laj">
19
- <Component Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Win64="no">
19
+ <Component Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Bitness="always32">
20
<File Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Name="test.txt" KeyPath="yes" Source="SourceDir\PFiles\\MsiPackage\test.txt" />
21
</Component>
22
</Directory>
src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/Expected.wxs
+2
-2
@@ -1,9 +1,9 @@
1
-<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
1
+<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
<Directory Id="TARGETDIR" Name="SourceDir">
4
<Directory Id="ProgramFilesFolder">
5
<Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq">
6
- <Component Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Guid="" Win64="no">
6
+ <Component Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Guid="" Bitness="always32">
7
<File Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Name="test.txt" KeyPath="yes" Source="SourceDir\File\filcV1yrx0x8wJWj4qMzcH21jwkPko" />
8
</Component>
9
</Directory>
src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/Expected.wxs
+2
-2
@@ -1,9 +1,9 @@
1
-<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
1
+<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
<Directory Id="TARGETDIR" Name="SourceDir">
4
<Directory Id="ProgramFilesFolder">
5
<Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq">
6
- <Component Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Win64="no">
6
+ <Component Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Bitness="always32">
7
<File Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Name="test.txt" KeyPath="yes" Source="SourceDir\File\filcV1yrx0x8wJWj4qMzcH21jwkPko" />
8
</Component>
9
</Directory>
src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/Expected.wxs
+2
-2
@@ -1,9 +1,9 @@
1
-<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
1
+<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
<Directory Id="TARGETDIR" Name="SourceDir">
4
<Directory Id="ProgramFiles64Folder">
5
<Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq">
6
- <Component Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Win64="yes">
6
+ <Component Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Bitness="always64">
7
<File Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Name="test.txt" KeyPath="yes" Source="SourceDir\File\filcV1yrx0x8wJWj4qMzcH21jwkPko" />
8
</Component>
9
</Directory>
src/test/WixToolsetTest.CoreIntegration/TestData/SequenceTables/DecompiledSequenceTables.wxs
+2
-2
@@ -1,10 +1,10 @@
1
-<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
1
+<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
<CustomAction Id="CustomAction2" Property="TestAdvtExecuteSequenceProperty" Value="1" />
4
<Directory Id="TARGETDIR" Name="SourceDir">
5
<Directory Id="ProgramFilesFolder">
6
<Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="ykd0udtb">
7
- <Component Id="test.txt" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Win64="no">
7
+ <Component Id="test.txt" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Bitness="always32">
8
<File Id="test.txt" Name="test.txt" KeyPath="yes" Source="SourceDir\\MsiPackage\test.txt" />
9
</Component>
10
</Directory>
src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/DecompiledShortcuts.wxs
+2
-2
@@ -1,9 +1,9 @@
1
-<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
1
+<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
<Directory Id="TARGETDIR" Name="SourceDir">
4
<Directory Id="ProgramFilesFolder">
5
<Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="ykd0udtb">
6
- <Component Id="ShortcutComp" Guid="{5B3B3FC1-533D-4C29-BFB3-0E88B51E59D8}" Win64="no">
6
+ <Component Id="ShortcutComp" Guid="{5B3B3FC1-533D-4C29-BFB3-0E88B51E59D8}" Bitness="always32">
7
<File Id="test.txt" Name="test.txt" KeyPath="yes" Source="SourceDir\\MsiPackage\test.txt" />
8
<Shortcut Id="FileTargetShortcut" Directory="INSTALLFOLDER" Name="FileTargetShortcut" ShortName="lm2tdtqp" Target="[#test.txt]" />
9
<Shortcut Id="CustomTargetShortcut" Directory="INSTALLFOLDER" Name="CustomTargetShortcut" ShortName="treusbt_" Target="[INSTALLFOLDER]custom.target" />