Вы имеете в виду MsiGetProductInfo, поэтому я предполагаю, что у вас есть файл MSI для Windows Installer, который устанавливается exe (потому что он загружает предварительные условия) и что вы хотите получить информацию после установки вашей установки.
Это п/ссылаться на подпись:
DllImport("msi.dll", CharSet=CharSet.Unicode)]
static extern Int32 MsiGetProductInfo(string product,
string property, [Out] StringBuilder valueBuf, ref Int32 len)
и в основном продукта ProductCode от MSI Guid в виде строки в окружении {} скобки.
Вы не разместили ни одного кода, который вы, возможно, попробовали, поэтому невозможно диагностировать все проблемы, которые могут возникнуть у вас. Если под «номером продукта» вы имеете в виду версию, то вы используете какой-либо из значений документированных здесь:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa370130(v=vs.85).aspx
, где такие вещи, как INSTALLPROPERTY_VERSIONSTRING определены в msi.h из SDK Windows, значение является «VersionString ».
Там должно быть более чем достаточно информации, в этом примере также:
MSI Interop using MSIEnumRelatedProducts and MSIGetProductInfo
UpgradeCode обычно остается неизменным в течение многих различных ProductCodes, как происходит обновление, так что код не изменится, если вы используете MsiEnumRelatedProducts на UpgradeCode для возврата ProductCode, а затем подключите этот ProductCode к MsiGetProductInfo.
Я сделал ссылку ниже. Http: //stackoverflow.com/questions/4013425/msi-interop-using-msienumrelatedproducts-and-msigetproductinfo. Но он не возвращает ProductVersion.It возвращает имя продукта и код продукта. Любая идея? – KIS
Я изменил «ProductVersion» на «VersionString». то он возвращает версию продукта. – KIS