Цитата Maai:
Есть третий вариант. Версия установленной программы новее. »
|
Если новее, то должна быть зеленая галочка, либо это второй вариант.
Если версия правильная, такого вида "
*.*.*.*" или "
*,*,*,*" где *-цифра, то старее или новее определяется правильно.
Принцип такой:
Сравниваются сначала
MajorVersion, если они одинаковые, то сравниваются
MinorVersion, если и они одинаковые, сравниваются
Release, если и он одинаковый, сравнивается
Build.
То есть сравниваются все цифры разделенные точкой (или запятой) с лева направо, не надо забывать про точки, они имеют большое значение. Версия 5.2 старее чем 5.102, конечно если вы не забыли поставить точку, или не отбросили два нуля.
Старее < Новее
5.0 < 5.1
5.10 < 5.102
5.2 < 5.102
0.8 < 0.88
1.666 < 2.0
Цитата Maai:
При указании вместо GUID пути к файлу все работает и правильно отображается (ясно, что для одной разрядности). »
|
В большинстве случаев программы устанавливаются в Program Files, в большинстве случаев программы 32-битные, проверять можно и на x86 и на x64 по пути
%ProgramFiles%\XnView\xnview.exe
Если на х64 ОС ставится х64 приложение, а на х86 ставится х86, то проверять можно по пути
%SystemDrive%\Program Files\CCleaner\CCleaner.exe
Цитата Maai:
Но тут при настройке очень не хватает кнопки браузера для простого указания пути к этому файлу, если он есть. »
|
Все таки основной, и более правильный метод проверки через GUID. Проверка по наличию файла сделана для тех редких случаев, когда приложение не прописывается в реестре, в моем случае это портативные приложения, DirectX и т.п.
Устанавливаются (точнее копируются) они не в раздвоенную "Program Files" а определенное место, тут проблема с разрядностью сразу пропадает.
Исходя из этого, кнопки нет.