Я использую проект установки и развертывания VS 2008 для развертывания смешанного управляемого / неуправляемого приложения. У меня возникли проблемы при регистрации DLL в смешанном режиме с использованием встроенного свойства регистрации (перечисляемое значение «vsdraCOM» свойства «Register».) В качестве обходного пути я добавил сборку пользовательской установки .NET (с классом, который Происходит от System.Configuration.Install.Installer.) Я уверен, что этот класс работает, и ряд операций успешно устанавливаются и удаляются с помощью кода в этой сборке, включая выполнение точки входа Dll (Un) RegisterServer для ряда сборок. ,
Однако одна DLL не регистрируется успешно. Это единственная библиотека DLL, которая зависит от некоторых сторонних распространяемых сборок, которые нужно установить в GAC. Я установил эти сборки в GAC благодаря встроенной поддержке для этого в проектах установки и развертывания VS 2008, и я знаю, что это работает. Я подтвердил, что происходит то, что настраиваемое действие выполняется до того, как установщик выполнит установку GAC.
Уф. Итак, мой вопрос: есть ли способ заставить установщик выполнить установку GAC перед выполнением пользовательского действия? Есть ли способ использовать свойство «Condition» пользовательского действия для этого? Если нет, то какая моя лучшая альтернатива? Захватить записи реестра из DLL и добавить их в настройки реестра для установщика (не нравится это, потому что кто-то может добавить новые COM-серверы в класс в будущем)? Использование кода .NET для установки сборки в GAC вручную (пока не знаю, как это сделать)?
Спасибо
Dave