Skip to content
This repository was archived by the owner on Feb 14, 2025. It is now read-only.

Commit 75699d8

Browse files
committed
Add NativeMachine to Burn and WIX_NATIVE_MACHINE to UtilExtension
1 parent 58abd69 commit 75699d8

File tree

19 files changed

+138
-12
lines changed

19 files changed

+138
-12
lines changed

src/burn/engine/variable.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@ static HRESULT InitializeVariableVersionNT(
9191
__in DWORD_PTR dwpData,
9292
__inout BURN_VARIANT* pValue
9393
);
94+
static HRESULT InitializeVariableNativeMachine(
95+
__in DWORD_PTR dwpData,
96+
__inout BURN_VARIANT* pValue
97+
);
9498
static HRESULT InitializeVariableOsInfo(
9599
__in DWORD_PTR dwpData,
96100
__inout BURN_VARIANT* pValue
@@ -218,6 +222,7 @@ extern "C" HRESULT VariableInitialize(
218222
{L"LocalAppDataFolder", InitializeVariableCsidlFolder, CSIDL_LOCAL_APPDATA},
219223
{VARIABLE_LOGONUSER, InitializeVariableLogonUser, 0},
220224
{L"MyPicturesFolder", InitializeVariableCsidlFolder, CSIDL_MYPICTURES},
225+
{L"NativeMachine", InitializeVariableNativeMachine, 0},
221226
{L"NTProductType", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTProductType},
222227
{L"NTSuiteBackOffice", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTSuiteBackOffice},
223228
{L"NTSuiteDataCenter", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTSuiteDataCenter},
@@ -1802,6 +1807,26 @@ static HRESULT InitializeVariableSystemInfo(
18021807
return hr;
18031808
}
18041809

1810+
static HRESULT InitializeVariableNativeMachine(
1811+
__in DWORD_PTR dwpData,
1812+
__inout BURN_VARIANT* pValue
1813+
)
1814+
{
1815+
UNREFERENCED_PARAMETER(dwpData);
1816+
1817+
HRESULT hr = S_OK;
1818+
USHORT usNativeMachine = IMAGE_FILE_MACHINE_UNKNOWN;
1819+
1820+
hr = ProcNativeMachine(::GetCurrentProcess(), &usNativeMachine);
1821+
ExitOnFailure(hr, "Failed to get native machine value.");
1822+
1823+
hr = BVariantSetNumeric(pValue, usNativeMachine);
1824+
ExitOnFailure(hr, "Failed to set variant value.");
1825+
1826+
LExit:
1827+
return hr;
1828+
}
1829+
18051830
static HRESULT InitializeVariableComputerName(
18061831
__in DWORD_PTR dwpData,
18071832
__inout BURN_VARIANT* pValue

src/chm/documents/bundle/bundle_built_in_variables.html.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ The Burn engine offers a set of commonly-used variables so you can use them with
2424
* LocalAppDataFolder - gets the well-known folder for CSIDL\_LOCAL\_APPDATA.
2525
* LogonUser - gets the current user name.
2626
* MyPicturesFolder - gets the well-known folder for CSIDL\_MYPICTURES.
27+
* NativeMachine - gets the [Image File Machine value](https://docs.microsoft.com/en-us/windows/win32/sysinfo/image-file-machine-constants) representing the native architecture of the machine. This property is only set on Windows 10, version 1511 (TH2) and higher.
2728
* NTProductType - numeric product type from OS version information.
2829
* NTSuiteBackOffice - non-zero if OS version suite is Back Office.
2930
* NTSuiteDataCenter - non-zero if OS version suite is Datacenter.

src/chm/documents/customactions/osinfo.html.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ after: using_standard_customactions
55
---
66
# OSInfo custom actions
77

8-
The WixQueryOsInfo, WixQueryOsDirs, and WixQueryOsDriverInfo custom actions in wixca (part of WixUtilExtension) set properties over and above the MSI set for OS product/suite detection and standard directories. The WixQueryOsWellKnownSID custom action sets properties for the localized names of some built in Windows users and groups.
8+
The WixQueryOsInfo, WixQueryOsDirs, WixQueryOsDriverInfo, and WixQueryNativeMachine custom actions in wixca (part of WixUtilExtension) set properties over and above the MSI set for OS product/suite detection, architecture, and standard directories. The WixQueryOsWellKnownSID custom action sets properties for the localized names of some built in Windows users and groups.
99

1010
To use these custom actions you simply need to add a [<PropertyRef>](~/xsd/wix/propertyref.html) to the property you want to use and then include WixUtilExtensions when linking. For example:
1111

@@ -549,3 +549,17 @@ WixUtilExtension will automatically schedule the custom actions as needed after
549549
<td>Set to 1 if the target machine has composition enabled. This property is only set on machines running Windows Vista or higher.</td>
550550
</tr>
551551
</table>
552+
553+
<h2>WixQueryNativeMachine properties</h2>
554+
555+
<table>
556+
<tr>
557+
<td valign="top">
558+
<p>WIX_NATIVE_MACHINE</p>
559+
</td>
560+
561+
<td>
562+
<p>Set to an [Image File Machine value](https://docs.microsoft.com/en-us/windows/win32/sysinfo/image-file-machine-constants) representing the native architecture of the machine. This property is only set on Windows 10, version 1511 (TH2) and higher.</p>
563+
</td>
564+
</tr>
565+
</table>

src/ext/UtilExtension/wixlib/UtilExtension.wxs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,11 @@
277277
<CustomActionRef Id="WixQueryOsDriverInfo" />
278278
</Fragment>
279279

280+
<Fragment>
281+
<Property Id="WIX_NATIVE_MACHINE" Secure="yes" />
282+
<CustomActionRef Id="WixQueryNativeMachine" />
283+
</Fragment>
284+
280285
<!-- ShellExec custom actions (for when only one is needed; multiple executions need their own IDs) -->
281286
<Fragment>
282287
<PropertyRef Id="WixShellExecBinaryId" />

src/ext/UtilExtension/wixlib/UtilExtension_Platform.wxi

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,18 @@
227227
<Custom Action="WixQueryOsDriverInfo$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
228228
</InstallUISequence>
229229
</Fragment>
230+
231+
<Fragment>
232+
<CustomAction Id="WixQueryNativeMachine$(var.Suffix)" BinaryKey="WixCA$(var.Suffix)" DllEntry="WixQueryNativeMachine" Execute="firstSequence" Return="check" SuppressModularization="yes" />
233+
234+
<InstallExecuteSequence>
235+
<Custom Action="WixQueryNativeMachine$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT &gt; 602</Custom>
236+
</InstallExecuteSequence>
237+
238+
<InstallUISequence>
239+
<Custom Action="WixQueryNativeMachine$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT &gt; 602</Custom>
240+
</InstallUISequence>
241+
</Fragment>
230242

231243
<Fragment>
232244
<CustomAction Id="WixFailWhenDeferred$(var.Suffix)" BinaryKey="WixCA$(var.Suffix)" DllEntry="WixFailWhenDeferred" Execute="deferred" Return="check" SuppressModularization="yes" />

src/ext/ca/wixca/dll/OsInfo.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,3 +487,31 @@ extern "C" UINT __stdcall WixQueryOsDriverInfo(
487487
}
488488
return WcaFinalize(er);
489489
}
490+
491+
/********************************************************************
492+
WixQueryNativeMachine - entry point for WixQueryNativeMachine custom action
493+
494+
Called as Type 1 custom action (DLL from the Binary table) from
495+
Windows Installer to set properties that indicates the native machine architecture
496+
********************************************************************/
497+
extern "C" UINT __stdcall WixQueryNativeMachine(
498+
__in MSIHANDLE hInstall
499+
)
500+
{
501+
HRESULT hr = S_OK;
502+
USHORT usNativeMachine = IMAGE_FILE_MACHINE_UNKNOWN;
503+
DWORD er = ERROR_SUCCESS;
504+
505+
hr = WcaInitialize(hInstall, "WixQueryNativeMachine");
506+
ExitOnFailure(hr, "WixQueryNativeMachine failed to initialize");
507+
508+
hr = ::ProcNativeMachine(::GetCurrentProcess(), &usNativeMachine);
509+
ExitOnFailure(hr, "Failed to get native machine value.");
510+
511+
WcaSetIntProperty(L"WIX_NATIVE_MACHINE", usNativeMachine);
512+
513+
LExit:
514+
if (FAILED(hr))
515+
er = ERROR_INSTALL_FAILURE;
516+
return WcaFinalize(er);
517+
}

src/ext/ca/wixca/dll/wixca.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ EXPORTS
1919
WixQueryOsDirs
2020
WixQueryOsWellKnownSID
2121
WixQueryOsDriverInfo
22+
WixQueryNativeMachine
2223
; netshortcuts.cpp
2324
WixSchedInternetShortcuts
2425
WixCreateInternetShortcuts

src/libs/dutil/inc/procutil.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ HRESULT DAPI ProcWow64(
2222
__in HANDLE hProcess,
2323
__out BOOL* pfWow64
2424
);
25+
HRESULT DAPI ProcNativeMachine(
26+
__in HANDLE hProcess,
27+
__out USHORT* pusNativeMachine
28+
);
2529
HRESULT DAPI ProcDisableWowFileSystemRedirection(
2630
__in PROC_FILESYSTEMREDIRECTION* pfsr
2731
);

src/libs/dutil/procutil.cpp

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,13 @@ extern "C" HRESULT DAPI ProcWow64(
7676

7777
if (pfnIsWow64Process2)
7878
{
79-
USHORT pProcessMachine = IMAGE_FILE_MACHINE_UNKNOWN;
80-
if (!pfnIsWow64Process2(hProcess, &pProcessMachine, nullptr))
79+
USHORT usProcessMachine = IMAGE_FILE_MACHINE_UNKNOWN;
80+
if (!pfnIsWow64Process2(hProcess, &usProcessMachine, NULL))
8181
{
8282
ExitWithLastError(hr, "Failed to check WOW64 process - IsWow64Process2.");
8383
}
8484

85-
if (pProcessMachine != IMAGE_FILE_MACHINE_UNKNOWN)
85+
if (usProcessMachine != IMAGE_FILE_MACHINE_UNKNOWN)
8686
{
8787
fIsWow64 = TRUE;
8888
}
@@ -107,6 +107,29 @@ extern "C" HRESULT DAPI ProcWow64(
107107
return hr;
108108
}
109109

110+
extern "C" HRESULT DAPI ProcNativeMachine(
111+
__in HANDLE hProcess,
112+
__out USHORT* pusNativeMachine
113+
)
114+
{
115+
HRESULT hr = S_OK;
116+
117+
typedef BOOL(WINAPI* LPFN_ISWOW64PROCESS2)(HANDLE, USHORT *, USHORT *);
118+
LPFN_ISWOW64PROCESS2 pfnIsWow64Process2 = (LPFN_ISWOW64PROCESS2)::GetProcAddress(::GetModuleHandleW(L"kernel32"), "IsWow64Process2");
119+
120+
if (pfnIsWow64Process2)
121+
{
122+
USHORT usProcessMachineUnused = IMAGE_FILE_MACHINE_UNKNOWN;
123+
if (!pfnIsWow64Process2(hProcess, &usProcessMachineUnused, pusNativeMachine))
124+
{
125+
ExitWithLastError(hr, "Failed to check WOW64 process - IsWow64Process2.");
126+
}
127+
}
128+
129+
LExit:
130+
return hr;
131+
}
132+
110133
extern "C" HRESULT DAPI ProcDisableWowFileSystemRedirection(
111134
__in PROC_FILESYSTEMREDIRECTION* pfsr
112135
)

src/tools/wix/CompilerCore.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ public sealed class CompilerCore : IMessageHandler
186186
"LocalAppDataFolder",
187187
"LogonUser",
188188
"MyPicturesFolder",
189+
"NativeMachine",
189190
"NTProductType",
190191
"NTSuiteBackOffice",
191192
"NTSuiteDataCenter",

test/data/Extensions/UtilExtension/PropertyTests/product.wxs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,11 @@
169169
<!-- Set to 1 if the video card driver on the target machine is a WDDM driver. This property is only set on machines running Windows Vista or higher.-->
170170

171171
<PropertyRef Id="WIX_DWM_COMPOSITION_ENABLED" />
172-
<!-- Set to 1 if the target machine has composition enabled. This property is only set on machines running Windows Vista or higher."-->
172+
<!-- Set to 1 if the target machine has composition enabled. This property is only set on machines running Windows Vista or higher.-->
173+
174+
<PropertyRef Id="WIX_NATIVE_MACHINE" />
175+
<!-- Set to an Image File Machine value representing the native architecture of the machine. https://docs.microsoft.com/en-us/windows/win32/sysinfo/image-file-machine-constants
176+
This property is only set on Windows 10, version 1511 (TH2) and higher.-->
173177

174178
<Directory Id="TARGETDIR" Name="SourceDir">
175179
<Directory Id="ProgramFilesFolder" Name="PFiles">

test/src/UnitTests/Burn/VariableTest.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,7 @@ namespace Bootstrapper
420420
Assert::Equal(E_INVALIDARG, hr);
421421
Assert::False(EvaluateConditionHelper(&variables, L"VersionNT = \"VAL\""));
422422

423+
VariableGetNumericHelper(&variables, L"NativeMachine");
423424
VariableGetNumericHelper(&variables, L"NTProductType");
424425
VariableGetNumericHelper(&variables, L"NTSuiteBackOffice");
425426
VariableGetNumericHelper(&variables, L"NTSuiteDataCenter");

test/src/WixTests/Extensions/UtilExtension/UtilExtension.PropertyTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,13 @@ public void Property_Install()
6161
VerifyPropery(logFile, "WIX_ACCOUNT_USERS", UserVerifier.GetLocalUserNameFromSID(UserVerifier.SIDStrings.BUILTIN_USERS));
6262
VerifyPropery(logFile, "WIX_ACCOUNT_GUESTS", UserVerifier.GetLocalUserNameFromSID(UserVerifier.SIDStrings.BUILTIN_GUESTS));
6363

64+
if (Environment.OSVersion.Version >= new Version(10, 0, 10586, 0))
65+
{
66+
Assert.True(
67+
LogVerifier.MessageInLogFileRegex(logFile, "Property(S): WIX_NATIVE_MACHINE = [1-9]\\d*"),
68+
String.Format("Property 'WIX_NATIVE_MACHINE' with with positive non-zero value was not found in the log file: '{0}'", logFile));
69+
}
70+
6471
MSIExec.UninstallProduct(msiFile, MSIExec.MSIExecReturnCode.SUCCESS);
6572
}
6673

test/src/WixTests/Integration/BuildingPackages/Bundle.ComponentSearchTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public void ComponentSearchInvalidProductCode()
7373
[Trait("Bug Link", "https://sourceforge.net/tracker/?func=detail&atid=642714&aid=2980329&group_id=105970")]
7474
public void ComponentSearchPredefinedVariable()
7575
{
76-
string expectedErrorMessage = @"The util:ComponentSearch/@Variable attribute's value, 'ProgramFilesFolder', is one of the illegal options: 'AdminToolsFolder', 'AppDataFolder', 'CommonAppDataFolder', 'CommonFilesFolder', 'CompatibilityMode', 'DesktopFolder', 'FavoritesFolder', 'FontsFolder', 'LocalAppDataFolder', 'MyPicturesFolder', 'NTProductType', 'NTSuiteBackOffice', 'NTSuiteDataCenter', 'NTSuiteEnterprise', 'NTSuitePersonal', 'NTSuiteSmallBusiness', 'NTSuiteSmallBusinessRestricted', 'NTSuiteWebServer', 'PersonalFolder', 'Privileged', 'ProgramFilesFolder', 'ProgramMenuFolder', 'SendToFolder', 'StartMenuFolder', 'StartupFolder', 'SystemFolder', 'TempFolder', 'TemplateFolder', 'VersionMsi', 'VersionNT', 'VersionNT64', 'WindowsFolder', or 'WindowsVolume'.";
76+
string expectedErrorMessage = @"The util:ComponentSearch/@Variable attribute's value, 'ProgramFilesFolder', is one of the illegal options: 'AdminToolsFolder', 'AppDataFolder', 'CommonAppDataFolder', 'CommonFilesFolder', 'CompatibilityMode', 'DesktopFolder', 'FavoritesFolder', 'FontsFolder', 'LocalAppDataFolder', 'MyPicturesFolder', 'NativeMachine', 'NTProductType', 'NTSuiteBackOffice', 'NTSuiteDataCenter', 'NTSuiteEnterprise', 'NTSuitePersonal', 'NTSuiteSmallBusiness', 'NTSuiteSmallBusinessRestricted', 'NTSuiteWebServer', 'PersonalFolder', 'Privileged', 'ProgramFilesFolder', 'ProgramMenuFolder', 'SendToFolder', 'StartMenuFolder', 'StartupFolder', 'SystemFolder', 'TempFolder', 'TemplateFolder', 'VersionMsi', 'VersionNT', 'VersionNT64', 'WindowsFolder', or 'WindowsVolume'.";
7777

7878
Candle candle = new Candle();
7979
candle.SourceFiles.Add(Path.Combine(ComponentSearchTests.TestDataDirectory, @"ComponentSearchPredefinedVariable\Product.wxs"));

test/src/WixTests/Integration/BuildingPackages/Bundle.DirectorySearchTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public void DirectorySearchInvalidPath()
6363
[Trait("Bug Link", "https://sourceforge.net/tracker/?func=detail&atid=642714&aid=2980329&group_id=105970")]
6464
public void DirectorySearchPredefinedVariable()
6565
{
66-
string expectedErrorMessage = @"The util:DirectorySearch/@Variable attribute's value, 'AdminToolsFolder', is one of the illegal options: 'AdminToolsFolder', 'AppDataFolder', 'CommonAppDataFolder', 'CommonFilesFolder', 'CompatibilityMode', 'DesktopFolder', 'FavoritesFolder', 'FontsFolder', 'LocalAppDataFolder', 'MyPicturesFolder', 'NTProductType', 'NTSuiteBackOffice', 'NTSuiteDataCenter', 'NTSuiteEnterprise', 'NTSuitePersonal', 'NTSuiteSmallBusiness', 'NTSuiteSmallBusinessRestricted', 'NTSuiteWebServer', 'PersonalFolder', 'Privileged', 'ProgramFilesFolder', 'ProgramMenuFolder', 'SendToFolder', 'StartMenuFolder', 'StartupFolder', 'SystemFolder', 'TempFolder', 'TemplateFolder', 'VersionMsi', 'VersionNT', 'VersionNT64', 'WindowsFolder', or 'WindowsVolume'.";
66+
string expectedErrorMessage = @"The util:DirectorySearch/@Variable attribute's value, 'AdminToolsFolder', is one of the illegal options: 'AdminToolsFolder', 'AppDataFolder', 'CommonAppDataFolder', 'CommonFilesFolder', 'CompatibilityMode', 'DesktopFolder', 'FavoritesFolder', 'FontsFolder', 'LocalAppDataFolder', 'MyPicturesFolder', 'NativeMachine', 'NTProductType', 'NTSuiteBackOffice', 'NTSuiteDataCenter', 'NTSuiteEnterprise', 'NTSuitePersonal', 'NTSuiteSmallBusiness', 'NTSuiteSmallBusinessRestricted', 'NTSuiteWebServer', 'PersonalFolder', 'Privileged', 'ProgramFilesFolder', 'ProgramMenuFolder', 'SendToFolder', 'StartMenuFolder', 'StartupFolder', 'SystemFolder', 'TempFolder', 'TemplateFolder', 'VersionMsi', 'VersionNT', 'VersionNT64', 'WindowsFolder', or 'WindowsVolume'.";
6767

6868
Candle candle = new Candle();
6969
candle.SourceFiles.Add(Path.Combine(DirectorySearchTests.TestDataDirectory, @"DirectorySearchPredefinedVariable\Product.wxs"));

test/src/WixTests/Integration/BuildingPackages/Bundle.FileSearchTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public void FileSearchInvalidPath()
6363
[Trait("Bug Link", "https://sourceforge.net/tracker/?func=detail&atid=642714&aid=2980329&group_id=105970")]
6464
public void FileSearchPredefinedVariable()
6565
{
66-
string expectedErrorMessage = @"The util:FileSearch/@Variable attribute's value, 'AdminToolsFolder', is one of the illegal options: 'AdminToolsFolder', 'AppDataFolder', 'CommonAppDataFolder', 'CommonFilesFolder', 'CompatibilityMode', 'DesktopFolder', 'FavoritesFolder', 'FontsFolder', 'LocalAppDataFolder', 'MyPicturesFolder', 'NTProductType', 'NTSuiteBackOffice', 'NTSuiteDataCenter', 'NTSuiteEnterprise', 'NTSuitePersonal', 'NTSuiteSmallBusiness', 'NTSuiteSmallBusinessRestricted', 'NTSuiteWebServer', 'PersonalFolder', 'Privileged', 'ProgramFilesFolder', 'ProgramMenuFolder', 'SendToFolder', 'StartMenuFolder', 'StartupFolder', 'SystemFolder', 'TempFolder', 'TemplateFolder', 'VersionMsi', 'VersionNT', 'VersionNT64', 'WindowsFolder', or 'WindowsVolume'.";
66+
string expectedErrorMessage = @"The util:FileSearch/@Variable attribute's value, 'AdminToolsFolder', is one of the illegal options: 'AdminToolsFolder', 'AppDataFolder', 'CommonAppDataFolder', 'CommonFilesFolder', 'CompatibilityMode', 'DesktopFolder', 'FavoritesFolder', 'FontsFolder', 'LocalAppDataFolder', 'MyPicturesFolder', 'NativeMachine', 'NTProductType', 'NTSuiteBackOffice', 'NTSuiteDataCenter', 'NTSuiteEnterprise', 'NTSuitePersonal', 'NTSuiteSmallBusiness', 'NTSuiteSmallBusinessRestricted', 'NTSuiteWebServer', 'PersonalFolder', 'Privileged', 'ProgramFilesFolder', 'ProgramMenuFolder', 'SendToFolder', 'StartMenuFolder', 'StartupFolder', 'SystemFolder', 'TempFolder', 'TemplateFolder', 'VersionMsi', 'VersionNT', 'VersionNT64', 'WindowsFolder', or 'WindowsVolume'.";
6767

6868
Candle candle = new Candle();
6969
candle.SourceFiles.Add(Path.Combine(FileSearchTests.TestDataDirectory, @"FileSearchPredefinedVariable\Product.wxs"));

test/src/WixTests/Integration/BuildingPackages/Bundle.ProductSearchTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public void ProductSearchInvalidGuid()
6060
[Trait("Bug Link", "https://sourceforge.net/tracker/?func=detail&atid=642714&aid=2980329&group_id=105970")]
6161
public void ProductSearchPredefinedVariable()
6262
{
63-
string expectedErrorMessage = @"The util:ProductSearch/@Variable attribute's value, 'ProgramFilesFolder', is one of the illegal options: 'AdminToolsFolder', 'AppDataFolder', 'CommonAppDataFolder', 'CommonFilesFolder', 'CompatibilityMode', 'DesktopFolder', 'FavoritesFolder', 'FontsFolder', 'LocalAppDataFolder', 'MyPicturesFolder', 'NTProductType', 'NTSuiteBackOffice', 'NTSuiteDataCenter', 'NTSuiteEnterprise', 'NTSuitePersonal', 'NTSuiteSmallBusiness', 'NTSuiteSmallBusinessRestricted', 'NTSuiteWebServer', 'PersonalFolder', 'Privileged', 'ProgramFilesFolder', 'ProgramMenuFolder', 'SendToFolder', 'StartMenuFolder', 'StartupFolder', 'SystemFolder', 'TempFolder', 'TemplateFolder', 'VersionMsi', 'VersionNT', 'VersionNT64', 'WindowsFolder', or 'WindowsVolume'.";
63+
string expectedErrorMessage = @"The util:ProductSearch/@Variable attribute's value, 'ProgramFilesFolder', is one of the illegal options: 'AdminToolsFolder', 'AppDataFolder', 'CommonAppDataFolder', 'CommonFilesFolder', 'CompatibilityMode', 'DesktopFolder', 'FavoritesFolder', 'FontsFolder', 'LocalAppDataFolder', 'MyPicturesFolder', 'NativeMachine', 'NTProductType', 'NTSuiteBackOffice', 'NTSuiteDataCenter', 'NTSuiteEnterprise', 'NTSuitePersonal', 'NTSuiteSmallBusiness', 'NTSuiteSmallBusinessRestricted', 'NTSuiteWebServer', 'PersonalFolder', 'Privileged', 'ProgramFilesFolder', 'ProgramMenuFolder', 'SendToFolder', 'StartMenuFolder', 'StartupFolder', 'SystemFolder', 'TempFolder', 'TemplateFolder', 'VersionMsi', 'VersionNT', 'VersionNT64', 'WindowsFolder', or 'WindowsVolume'.";
6464

6565
Candle candle = new Candle();
6666
candle.SourceFiles.Add(Path.Combine(ProductSearchTests.TestDataDirectory, @"ProductSearchPredefinedVariable\Product.wxs"));

0 commit comments

Comments
 (0)