Вопрос

Можно ли заставить мой плагин Internet Explorer обновить себя, не требуя ручного удаления/переустановки с использованием .msi? Я думал о том, чтобы попытаться сделать это программно, но я не уверен, что нужно сделать (регистрация .dll's и т. Д.).

Спасибо, Натан

Это было полезно?

Решение

Просто загрузите новый MSI в фоновом режиме. Когда это будет сделано, предложите пользователю, и если он согласен, запустите новый MSI.

Re: Избегание пользовательского ввода: вы можете сделать это без их разрешения ... но, поскольку установка нового дополнения требует перезапуска браузера, это может быть не лучшим, чтобы сделать случайным образом. Вы можете время, когда вы знаете, что магазины будут закрыты, но что, если они откроются в полночь для Черной пятницы? Вы должны продумать это.

Альтернатива состоит в том, чтобы реализовать DLL, который раскрывает все интерфейсы, которые реализует ваше расширение, и регистрируют эту заглушку как тот, который загружается. Затем ваш заглушка может вызовать LoadLibrary на реальном DLL и пробудить все вызовы. Если вы хотите установить новую версию, вы загружаете новую реализацию DLL и заставляете STUB, разгрузите старую, а затем загружаете новую. Если вы сделаете это правильно, это может быть похоже на пользователя ... сложность возникает, когда новый DLL нуждается в новых записях реестра или вам нужно обновить заглушку ... и т. Д. Все эти проблемы могут быть решены, но необходимым усилия взрывается.

Мой совет - сделать это простым, пока вам не придется пойти на эти длины.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top