2014-02-06 3 views
1

Я строю установщик для решения, которое я разработал. Результатом одного из моих проектов является dll, который необходимо зарегистрировать. Я создаю MSI с Visual Studio, а затем модифицирую его с помощью InstallShield. В визуальной студии я добавил настраиваемое действие, для которого требуются права администратора, и установите для свойства register dll значение vsdrpCOMSelfReg. Когда я запускаю msi без прав администратора, отображается сообщение о том, что для операции требуется роль администратора, и когда я подтверждаю и изменяю учетную запись пользователя, установка заканчивается без каких-либо ошибок, однако DLL не регистрируется. Я что-то упустил? Как правильно зарегистрировать dll? Любая помощь будет очень оценена.Installshield MSI не регистрирует dll

+0

Почему вы создаете Visual Studio MSI, а затем заявляете, что InstallShield не удалось? –

+0

'Я создаю MSI с Visual Studio, а затем модифицирую его с помощью InstallShield.' это то, что я сказал – Kira

ответ

4

Самообслуживание не является лучшей практикой установщика Windows. Правильный подход заключается в создании метаданных COM в MSI и разрешении MSI копировать файл и применять данные реестра. В InstallShield вы достигнете этого, создав компонент для своей DLL, пометив DLL как файл ключа, а затем щелкните правой кнопкой мыши файл и выберите «Извлечь COM». InstallShield затем смоделирует регистрацию и отправит эту информацию в правильные таблицы. Сборка и тестирование на чистой машине. Никаких пользовательских действий не требуется, и установщик будет правильно поддерживать сценарии отката.

2

Нет причин даже создавать настраиваемое действие для этого, даже если это Visual Studio. Отметьте файл как vsdrfCOM, и регистрация классов будет извлечена во время сборки в таблицу классов MSI. Даже если вы должны настаивать на самостоятельной регистрации, вы можете отметить его vsdrfComSelfReg и он будет зарегистрирован из таблицы SelfReg в файле MSI. Никаких специальных действий вообще. Во всяком случае, как сказал Кристофер, не очень хорошая практика запускать самостоятельную регистрацию во время установки по многим причинам, в одном из которых отсутствуют зависимости.

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