WiX “Значительное обновление” не полностью устанавливает приложение на снижении

Открытый ключ содержит обоих модуль (очень длинное количество, могут быть 1024 бита, 2058 битов, 4096 битов) и экспонента с открытым ключом (намного меньшее число, обычно равняется еще одному, чем два к некоторому питанию). Необходимо узнать, как разделить тот открытый ключ на эти два компонента, прежде чем можно будет сделать что-либо с ним.

я не знаю много о pycrypto, но проверить подпись, взять хеш строки. Теперь мы должны дешифровать подпись. Читайте на модульное возведение в степень ; формула для дешифрования подписи message^public exponent % modulus. Последний шаг должен проверить, если хеш, который Вы сделали и дешифрованная подпись, которую Вы получили, то же.

9
задан Yan Sklyarenko 13 January 2016 в 08:49
поделиться

4 ответа

Разрешение перехода на более раннюю версию не считается передовой практикой, по крайней мере, отчасти потому, что так сложно протестировать каждую поддерживаемую вами комбинацию, пока еще можно исправить их. Разве вместо этого невозможно обнаружить и заблокировать этот случай (предложить сначала удалить более новую версию) и поддерживать только автоматическое продвижение вперед?

Если вы должны заставить это работать, есть ли что-нибудь в подробном журнале для установки на более раннюю версию (или для ремонта - вам нужно установить политику ведения журнала машины, чтобы создать эту), которая подтверждает основное обновление (я бы посмотрел рядом с FindRelatedProducts) или обсуждает, почему компонент для вашего exe не установлен? Обязательно проверьте наличие каких-либо строк журнала с помощью SELMGR , поскольку они могут объяснить это в сценарии второстепенного обновления.

Поскольку объявленный ярлык присутствует, похоже, что вместо этого был объявлен компонент. Это может указывать на нарушение правил компонентов при незначительном обновлении (в частности, добавление компонента в более новую версию, похожее на удаление в вашей более старой версии - см. комментарий HeathS ), хотя это выглядит как Продукт / @ Id = '*' должен вызвать серьезное обновление.

Вы также можете попробовать поработать в образце проекта, начиная с базовой версии, которая имеет одну функцию, один компонент и один файл с ярлыком. Если необходимо, добавьте в обновленную версию еще один компонент и файл; в противном случае просто увеличивайте версии файлов. Затем попробуйте обратный сценарий. Медленно добавляйте вещи, пока не найдете виновника. Затем надейтесь, что это что-то, что вы сможете удалить из своего реального продукта,

2
ответ дан 4 December 2019 в 23:06
поделиться

Я предлагаю немного "заставить его работать" - вы можете попробовать выполнить настраиваемое действие для тихого восстановления в случае перехода на более раннюю версию.

1
ответ дан 4 December 2019 в 23:06
поделиться

Как вы упорядочивали операции в InstallExecuteSequence?

Если вы выполните удаление после установки (что обеспечивает наилучшую производительность обновления), вы можете увидеть проблемы, если версии файлов изменятся на более низкие версии; что может иметь место при переходе на более раннюю версию.

Установщик Windows не перезапишет старые версии новыми версиями, если явно не будет предложено.

Если это так, то изменение порядка удаления перед установкой должно помочь.

1
ответ дан 4 December 2019 в 23:06
поделиться

Что произойдет, если вы используете два "UpgradeVersion" elements?

<UpgradeVersion Maximum="CurrentVersion" Property="PREVIOUSVERSIONSINSTALLED" IncludeMaximum="no" />
<UpgradeVersion Minimum="CurrentVersion" Property="PREVIOUSVERSIONSINSTALLED" IncludeMinimum="no" />
0
ответ дан 4 December 2019 в 23:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: