Ответ 1
Это вопрос, который очень сильно подпитывается пользователями FireBreath, поэтому, вероятно, о времени я ответил более подробно на форуме, который легче найти, чем в группе google проекта.
Прежде всего, чтобы очистить файл regsvr32, FireBreath действительно поддерживает "самостоятельную регистрацию" для всех браузеров; это означает, что при вызове regsvr32 он устанавливает ключи реестра не только для IE, но и для браузеров NPAPI, используя методы, связанные с DReJ (+1 для этой информации, кстати, спасибо. Многие не знают, где его найти).
Однако самозаписывающиеся библиотеки DLL сильно разочарованы в мире установщика и Microsoft. Для этого есть много причин. Вы сделали довольно хорошую работу по обобщению других параметров установки в своем сообщении; Вы можете использовать .cab для IE и .XPI в firefox, но, конечно же, это не поможет вам в других браузерах.
Метод, рекомендованный командой FireBreath (который я возглавляю), должен использовать установщик MSI для всех браузеров. Лично мне не нравится, что все вещи работают по-разному в разных браузерах для установки, поэтому я использую javascript для обнаружения присутствия (или отсутствия) плагина, а затем предлагаю пользователю загрузить и запустить установщик MSI.
FireBreath имеет "встроенную" поддержку для установки установщиков MSI с WiX. Если вы установите WiX 3.0 или более позднюю версию на свой компьютер и заново запустите prep script, он создаст проект _WiXInstaller, который построит базовый MSI для установки вашего плагина для всех браузеров в рамках процесса сборки Visual Studio. Вы можете изменить шаблон .wxs, который будет оставлен в вашем домашнем каталоге, чтобы настроить его.
Более подробную информацию можно найти в вики FireBreath: http://www.firebreath.org/display/documentation/WiX+Installer+Help http://www.firebreath.org/display/[email protected]/Potential+Installer+Improvements
Если вы действительно любите использовать ваш установщик .cab для IE (у меня были проблемы с ними, но некоторым, похоже, им повезло) вы можете распространять файл MSI внутри своей CAB и запускать его CAB установлен. Преимущество этого заключается в том, что при установке MSI он устанавливает все для IE, Firefox, Safari, Chrome и Opera (а также другие браузеры, которые совместимы с теми же технологиями плагинов, что и эти браузеры).
В качестве быстрой заметки причина, по которой MSI является идеальным решением для установки плагинов (в отличие от использования чего-то, что вызывает DllRegisterServer, например regsvr32), заключается в том, что MSI основана на транзакциях, поэтому при ее удалении всегда будет отменено то, что было Путин; это означает, что вам не нужно беспокоиться о том, что вы хотите удалить 10 разных старых версий установщика, которые помещают вещи в разные места и т.д., потому что система MSI позаботится о том, чтобы очистить все при обновлении.
Надеюсь, что это поможет!