MSI информация о свойствах продукта

У меня есть следующий XML для конфигурации WIX MSI ..

<?xml version="1.0" encoding="UTF-8"?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"xmlns:util="http://schemas.microsoft.com/wix/UIExtension">
<Product Id="*"Name="MyProductName"Language="1033"Version="1.0.0"Manufacturer="Stack"Codepage="1200"UpgradeCode="242C9452-1B5E-414A-8245-D86B14E8E9CC"><Package Id="*"InstallerVersion="405"Compressed="yes"InstallScope="perMachine"Description="MyProduct"/>

<Property Id="Company" Value="$(var.Company)"/>
</Product>
</Wix>

И я использую код ниже (QT C ++) для кода, чтобы получить информацию о свойстве

#include <Windows.h>
#include <Msi.h>
#include <MsiQuery.h>

LPCWSTR program = L"C:/installer.msi";
MSIHANDLE hProduct = NULL;
LPWSTR pszVersion = NULL;
LPDWORD dwSizeVersion = NULL;
LPCWSTR property = L"ProductVersion";

MsiOpenPackage( program, &hProduct );
MsiGetProductProperty( hProduct, property, pszVersion, dwSizeVersion );
MsiCloseHandle( hProduct );

qDebug() << "MSI Property version is : " << QString::fromWCharArray(pszVersion);

Я попытался добавить ProductVersion к свойству поля в коде, но код не возвращает значение, указанное в XML. Как получить информацию о версии продукта, свойстве InstallVersion и свойствах компании от MSI.

0

Решение

Документы говорят, что ваш последний параметр должен быть размером буфера, в котором будет сохранен результат, а не NULL.

0

Другие решения


По вопросам рекламы [email protected]