Вопрос

Я использую проект настройки и развертывания VS 2008 для развертывания смешанного управляемого / неуправляемого приложения. У меня были проблемы с регистрацией DLL смешанного режима с использованием встроенного свойства регистрации («VSDracom» перечисленного значения свойства «регистр»). происходит из system.configuration.install.installer.) Я уверен, что этот класс работает и ряд операций успешно устанавливается и удаляет код в этой сборке, включая выполнение точки входа DLL (ООН) Анкет

Однако один DLL не успешно регистрируется. Это единственный DLL, который зависит от некоторых перераспределяемых сборок на 3-й части, которые хотят быть установлены в GAC. У меня есть эти сборки, установленные в GAC благодаря встроенной поддержке в проектах по настройке и развертывании VS 2008, и я знаю, что это работает. Я подтвердил, что происходит то, что пользовательское действие выполняет до того, как установщик выполнит установку GAC.

Как Итак, мой вопрос: есть ли способ заставить установщика выполнить установку GAC перед выполнением пользовательского действия? Есть ли способ использовать свойство «условия» для индивидуального действия для этого? Если нет, то какая моя лучшая альтернатива? Захват записей реестра из DLL и добавление их в настройки реестра для установщика (не нравится, потому что кто -то может добавить новые COM -серверы в класс в будущем)? Использование кода .NET для установки сборки в GAC вручную (еще не знаете, как это сделать)?

Спасибо,

Дэйв

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

Решение

Проекты настройки, которые вы можете создать в Visual Studio, очень ограничены. Это позволяет запланировать пользовательские действия только на 4 балла. Тем не менее, MSI позволяет запланировать пользовательские действия в любой момент процесса с некоторыми ограничениями на то, что они могут сделать.

Мое первое решение - прекратить использование Visual Studio 2008 в качестве инструмента разработки настройки. Команда Visual Studio попыталась абстрагировать всю сложность создания установки. Однако в процессе они также забрали всю гибкость MSI. Wix, InstallShield или Wise - это гораздо лучшие продукты для чего -либо, кроме простых установок. Я начал использовать Visual Studio для наших установок, и в итоге это было слишком много работы. Всегда был еще один обходной путь, и его побочные эффекты, которые нужно было рассмотреть.

Если вы не можете переключить технологию, вам нужно будет научиться вручную изменить полученный файл MSI. В вашем случае вам нужно будет изменить таблицу InstallexeCuteSevence, http://msdn.microsoft.com/en-us/library/aa369500(vs.85).aspx. Анкет Вы можете сделать это вручную через Orca, http://msdn.microsoft.com/en-us/library/aa370557(vs.85).aspx или через MSI API http://msdn.microsoft.com/en-us/library/aa372860(vs.85).aspx. Анкет Обязательно загрузите ORCA и запустите сценарии проверки против вашей установки. Сценарии указывают на многочисленные проблемы, которые исправление сэкономит вам бесчисленное количество часов при развертывании на машинах для клиентов.

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