ProductVersion in MSI file incorrect
Reported by
bazi...@gmail.com,
Jul 13 2017
|
|||
Issue description
UserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0
Steps to reproduce the problem:
Function Get-MSIInfo
{
param(
[parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[System.IO.FileInfo]$Path,
[parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[ValidateSet("ProductCode", "ProductVersion", "ProductName", "Manufacturer", "ProductLanguage", "FullVersion" ,"Description")]
[string]$Property
)
Process {
try {
# Read property from MSI database
$WindowsInstaller = New-Object -ComObject WindowsInstaller.Installer
$MSIDatabase = $WindowsInstaller.GetType().InvokeMember("OpenDatabase", "InvokeMethod", $null, $WindowsInstaller, @($Path.FullName, 0))
$Query = "SELECT Value FROM Property WHERE Property = '$($Property)'"
#$Query = "SELECT `Comments`,`Value` FROM Description "
$View = $MSIDatabase.GetType().InvokeMember("OpenView", "InvokeMethod", $null, $MSIDatabase, ($Query))
$View.GetType().InvokeMember("Execute", "InvokeMethod", $null, $View, $null)
$Record = $View.GetType().InvokeMember("Fetch", "InvokeMethod", $null, $View, $null)
$Value = $Record.GetType().InvokeMember("StringData", "GetProperty", $null, $Record, 1)
# Commit database and close view
$MSIDatabase.GetType().InvokeMember("Commit", "InvokeMethod", $null, $MSIDatabase, $null)
$View.GetType().InvokeMember("Close", "InvokeMethod", $null, $View, $null)
$MSIDatabase = $null
$View = $null
# Return the value
return $Value
}
catch {
Write-Warning -Message $_.Exception.Message ; break
}
}
End {
# Run garbage collection and release ComObject
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($WindowsInstaller) | Out-Null
[System.GC]::Collect()
}
}
Get-MSIInfo -Path 'D:\GoogleChromeStandaloneEnterprise64.msi' -Property "ProductVersion"
Get-MSIInfo -Path 'D:\---googlechromestandaloneenterprise64-56.0.2924.87.msi' -Property "ProductVersion"
This script as reference point to reproduce
The problem can be described this way ProductVersion contain wrong number which not matching with Real Build number of google chrome
http://helpnet.installshield.com/installshield19helplib/helplibrary/IHelpPropReference.htm
What is the expected behavior?
Correct version number in ProductVersion field of MSI file
What went wrong?
Life went wrong
Did this work before? No
Chrome version: 59.0.3071.86 (Official Build) (64-bit) Channel: stable
OS Version: 6.1 (Windows 7, Windows Server 2008 R2)
Flash Version: Shockwave Flash 26.0 r0
Please fix the version MSI field ProductVersion it does not display real build version
,
Jul 18 2017
HI Google team is there any chance to verify this problem?
,
Jul 18 2017
Adding TE-NeedsTriageHelp as it is installer related issue. Thanks,
,
Jul 21 2017
ProductVersion cannot be made to match Chrome's true version, so we do the best we can. Here's the situation: - https://msdn.microsoft.com/library/windows/desktop/aa370859.aspx indicates that ProductVersion must be a 32-bit value in major.minor.build (8.8.16) - Chrome's version number is a W.X.Y.Z number, where each component may be 32 bits. - square peg: meet round hole :-) - https://bugs.chromium.org/p/chromium/issues/detail?id=67348#c5 has the details for how we generate ProductVersion from a Chrome version. Chrome's installer reaches into the registry to update the DisplayVersion values sometime shortly after an install so that you will see the W.X.Y.Z value in the Programs and Features control panel. I'm not sure there's much else we can do here. Feel free to comment with any ideas you may have.
,
Oct 29
Issue 899426 has been merged into this issue. |
|||
►
Sign in to add a comment |
|||
Comment 1 by pbomm...@chromium.org
, Jul 13 2017Labels: M-59