Add `InstallerInformationalVersion`.
Gets "full" version (with commit id). Fixes https://github.com/wixtoolset/issues/issues/7200.
Bob Arnson committed
Feb 9, 2023 at 17:17 UTC
cdb457d593cb09a88e73cdcd9538a66e62610cf1
3 files changed
+32
-2
src/burn/engine/variable.cpp
+28
-2
@@ -193,6 +193,10 @@ static HRESULT InitializeVariableInstallerVersion(
193
__in DWORD_PTR dwpData,
194
__inout BURN_VARIANT* pValue
195
);
196
+static HRESULT InitializeVariableInstallerInformationalVersion(
197
+ __in DWORD_PTR dwpData,
198
+ __inout BURN_VARIANT* pValue
199
+);
200
static HRESULT InitializeVariableVersion(
201
__in DWORD_PTR dwpData,
202
__inout BURN_VARIANT* pValue
@@ -244,6 +248,7 @@ extern "C" HRESULT VariableInitialize(
248
{L"FontsFolder", InitializeVariableCsidlFolder, CSIDL_FONTS},
249
{VARIABLE_INSTALLERNAME, InitializeVariableInstallerName, 0},
250
{VARIABLE_INSTALLERVERSION, InitializeVariableInstallerVersion, 0},
251
+ {VARIABLE_INSTALLERINFORMATIONALVERSION, InitializeVariableInstallerInformationalVersion, 0},
252
{L"LocalAppDataFolder", InitializeVariableCsidlFolder, CSIDL_LOCAL_APPDATA},
253
{VARIABLE_LOGONUSER, InitializeVariableLogonUser, 0},
254
{L"MyPicturesFolder", InitializeVariableCsidlFolder, CSIDL_MYPICTURES},
@@ -2309,7 +2314,7 @@ LExit:
2314
#endif
2315
2316
static HRESULT InitializeVariable6432Folder(
2312
- __in DWORD_PTR dwpData,
2317
+ __in DWORD_PTR dwpData,
2318
__inout BURN_VARIANT* pValue
2319
)
2320
{
@@ -2405,7 +2410,28 @@ static HRESULT InitializeVariableInstallerVersion(
2410
LPWSTR sczVersion = NULL;
2411
2412
hr = StrAllocStringAnsi(&sczVersion, szVerMajorMinorBuild, 0, CP_ACP);
2408
- ExitOnFailure(hr, "Failed to copy the engine version.");
2413
+ ExitOnFailure(hr, "Failed to copy the engine version: %hs", szVerMajorMinorBuild);
2414
+
2415
+ // set value
2416
+ hr = BVariantSetString(pValue, sczVersion, 0, FALSE);
2417
+ ExitOnFailure(hr, "Failed to set variant value.");
2418
+
2419
+LExit:
2420
+ ReleaseStr(sczVersion);
2421
+
2422
+ return hr;
2423
+}
2424
+
2425
+static HRESULT InitializeVariableInstallerInformationalVersion(
2426
+ __in DWORD_PTR /*dwpData*/,
2427
+ __inout BURN_VARIANT* pValue
2428
+ )
2429
+{
2430
+ HRESULT hr = S_OK;
2431
+ LPWSTR sczVersion = NULL;
2432
+
2433
+ hr = StrAllocStringAnsi(&sczVersion, szInformationalVersion, 0, CP_ACP);
2434
+ ExitOnFailure(hr, "Failed to copy the engine informational version: %hs", szInformationalVersion);
2435
2436
// set value
2437
hr = BVariantSetString(pValue, sczVersion, 0, FALSE);
src/burn/engine/variable.h
+1
@@ -13,6 +13,7 @@ const LPCWSTR VARIABLE_DATE = L"Date";
13
const LPCWSTR VARIABLE_LOGONUSER = L"LogonUser";
14
const LPCWSTR VARIABLE_INSTALLERNAME = L"InstallerName";
15
const LPCWSTR VARIABLE_INSTALLERVERSION = L"InstallerVersion";
16
+const LPCWSTR VARIABLE_INSTALLERINFORMATIONALVERSION = L"InstallerInformationalVersion";
17
const LPCWSTR VARIABLE_REBOOTPENDING = L"RebootPending";
18
19
src/burn/test/BurnUnitTest/VariableTest.cpp
+3
@@ -605,6 +605,9 @@ namespace Bootstrapper
605
VariableGetStringHelper(&variables, L"CommonFiles64Folder");
606
VariableGetStringHelper(&variables, L"System64Folder");
607
}
608
+
609
+ Assert::Equal<String^>(wzVerMajorMinorBuild, VariableGetVersionHelper(&variables, L"InstallerVersion"));
610
+ Assert::Equal<String^>(wzInformationalVersion, VariableGetVersionHelper(&variables, L"InstallerInformationalVersion"));
611
}
612
finally
613
{