2010-03-24 6 views
0

В моем проекте используются несколько DLL-файлов с элементами управления activex.regsvr32 и установщик окон

Теперь я делаю проект развертывания (установщик Windows).

Мне нужно зарегистрировать dll через установщик Windows, используя regsvr32. Как я должен это делать ? И могу ли я определить, не удалось ли regsvr32 или нет?

+0

гм. 8 вопросов до этого, и не один ответ принят? –

+0

«Принять ответ» - это какой-то вариант? я заметил, что некоторые ответы имеют зеленые границы. Вы имеете в виду? –

+0

проверить faq - в принципе, у вас есть возможность отметить рядом с одним ответом, чтобы указать, что он был наиболее полезным для вас. –

ответ

9

Я предполагаю, что когда вы говорите, что вы создаете проект развертывания, вы говорите о неприятной работе, доступной в Visual Studio?

Если это так, то для каждой библиотеки DLL вы можете посмотреть их свойства и установить для свойства «Register» значение COM.

Если вы используете какую-либо другую технологию развертывания (например, Wix, InstallShield и т. Д.), Тогда ответ будет отличаться, но большинство из них имеют простую настройку: «Это COM-библиотека, которая должна быть зарегистрирована» , а не вам нужно начинать с regsvr32.

Что касается обнаружения сбоев - при использовании встроенных средств регистрация COM происходит во время обычной установки, а ошибки приводят к откату установки - нет необходимости проверять это самостоятельно; во многом таким же образом, что вам не нужно проверять, чтобы ваши файлы попали в место установки, и не нужно беспокоиться о том, что диск был заполнен.

+0

благодарит за ответ. Я раньше не заметил свойство «Зарегистрировать» ... –

+0

, кстати, почему ваш аватар выглядит симпатичным для Чарльза Гаргента? –

+0

@ Александр - http://meta.stackexchange.com/questions/17443/how-is-the-default-user-avatar-generated –

1

Вы должны исследовать WiX Это проект с открытым исходным кодом от MS, который создает установщики Windows (.msi). Есть инструмент с так называемым теплом, который генерирует код на разных входах, один из которых является dll-регистрами и т. Д. Рамка установки позаботится о том, произошла ли надлежащая регистрация

+1

Спасибо, но мой нынешний работодатель хочет использовать установщик Windows. Я не могу с ними спорить. –

+0

Если у установщика Windows вы имеете в виду проект установки, который создает VS, то нет, это не так, но есть проект с именем votive, который является плагином для VS, который позволяет вам создавать установки WiX с VS. Взгляните, WiX - гораздо более настраиваемый подход к созданию .msi-настроек. –

2

Лучший способ использования regsvr32 для регистрации COM-интерфейса во время установки - нет. (ухмылка)

Вызов regsvr32 и другие формы «саморегистрации» во время установки на установщике Windows - это плохая практика. Интерфейсы COM часто разделяются между несколькими продуктами. Если пакет A регистрирует COM-интерфейс IFoo, тогда пакет B (re) регистрирует один и тот же интерфейс, тогда, если какой-либо пакет удаляется и отменяет регистрацию IFoo, он разбивает оставшийся пакет.

Предпочтительным методом является извлечение информации интерфейса COM и ее создание в записи таблицы реестра в пакете .msi. MSI распознает согласованные записи реестра COM и управляет количеством ссылок, а не дублирует их. Вторая запись 2.Nth просто ударяет счетчик ссылок, каждая деинсталляция просто уменьшает его, пока последняя деинсталляция не уменьшит счетчик ref до нуля, а записи реестра фактически удаляются.

В WiX инструмент heat используется для «сбора» COM-интерфейсов (среди других данных) в исходные фрагменты WiX, содержащие необходимые записи реестра. У Installshield есть флаг «COM extract at build», который делает то же самое для проектов MSI и Installscript-MSI. Другие инструменты установщика Windows имеют схожие возможности.


Примечание. Установщик Windows (MSI) является базовым API-интерфейсом управления установкой, который является частью самой Windows. Вам нужны дополнительные инструменты для создания пакетов .msi, которые используют этот API.

Windows Installer XML (WiX) - это XML-схема для описания пакетов установки на основе MSI, а также инструменты для генерации фактического пакета из документов в этой схеме.Installshield - еще один инструмент, который может генерировать пакеты .msi.

Это те, которые я использовал. Существуют и другие инструменты, такие как InstallAware и Advanced Installer. Я не могу говорить о своих возможностях, никогда не использовал их сам. Visual Studio также имеет подключаемый модуль для создания пакетов установки, но по моему опыту он плохо масштабируется для продуктов промышленной прочности.

 Смежные вопросы

  • Нет связанных вопросов^_^