Change format of add/remove programs registration to improve winget support (#13911)
Fixes #12469
Summary of the issue:
Winget is the new package manager in the most recent versions of Windows 10 and 11. It allows automatic updating via the command line. However, Winget threats Alpha versions of NVDA older than any released version. This means that, when an Alpha version for NVDA 2022.3 is installed, Winget will yet threat NVDA 2022.1 as an upgrade. See microsoft/winget-cli#1209 (comment) for more information about version parsing in Winget. In short, our versioning scheme for alpha versions (e.g. alpha-25875,d6a193ae) is considered pretty exotic.
I proposed three possible solutions in #12469 (comment). Option 3 is not possible with winget, see microsoft/winget-cli#1209 (comment). Therefore, this pr chooses option 1, but it extends on that (see below)
Description of user facing changes
In add/remove programs:
Old situation:
DisplayName: NVDA
DisplayVersion: alpha-25875,d6a193ae
New situation:
DisplayName: NVDA alpha-25875,d6a193ae
DisplayVersion: '2022.3.0.25875'
In about window:
Old situation: Version: alpha-25875,d6a193ae
New situation: Version: alpha-25875,d6a193ae (2022.3.0.25875)
Apart from fixing Winget this way, it will be much easier for end users to see on what year.major.minor branch of NVDA they are with their alpha version.
note that versions in other places are really not affected. Therefore this change is barely visible. Also note that having a version in the Displayname and the product version in the DisplayVersion for ARP is pretty common. This is used by Visual Studio for example.