@joebigelow / wix-1 / commits / c6e2213e

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" />