Hello, IBoB!
You wrote on Mon, 18 Oct 2004 09:38:21 GMT:
I> Приветствую всех!
I> Задача в следующем — с помощью msi ставится еxe-шный DCOM сервер. При
I> установке не плохо было бы проверить, а не запущен ли он? Судя по всему
I> это можно как-то сделать штатными свойствами Windows Installer'а, так
I> как при установке msm модулей с мелкомягкими контролами они просят
I> закрыть приложения использующие соответсятвующие компоненты. Кто нибудь
I> знает, как это работает?
Приложение при запуске создает мьютекс. Инсталлятор при запуске создает мьютекс с тем же именем. Если не удалось, то приложение запущено.
Posted via RSDN NNTP Server 1.9 gamma
Здравствуйте, IBoB, Вы писали:
ST>>Приложение при запуске создает мьютекс. Инсталлятор при запуске создает мьютекс с тем же именем. Если не удалось, то приложение запущено.
IBB>Интересует выполнение задачи штатными средствами msi. Есть основание пологать что это возможно.
Копайте в сторону CustomActions. С их помощью можно много чего сделать. В частности — то что Вам надо.
... << RSDN@Home 1.1.4 @@subversion >>
Здравствуйте, Alny, Вы писали:
A>Здравствуйте, IBoB, Вы писали:
ST>>>Приложение при запуске создает мьютекс. Инсталлятор при запуске создает мьютекс с тем же именем. Если не удалось, то приложение запущено.
IBB>>Интересует выполнение задачи штатными средствами msi. Есть основание пологать что это возможно.
A>Копайте в сторону CustomActions. С их помощью можно много чего сделать. В частности — то что Вам надо.
Дык именно этого то делать и не хочется
. Windows installer сам определяет какие файлы он может заменить, а какие находятся в использовании. Только вот как этим воспользоваться?
Переформулирую вопрос.
Суть в следующем — при выполнении File Costing во внутреннюю таблицу FileInUse заносятся записи о всех открытых файлах подлежащих замене. Если эта таблица не пуста, то стандартное действие InstallValidate вызвает диалог FileInUse наполняя его соответствующими данными. Но в моем случае этого не происходит
. Далее при замене файлов для тех, которые невозможно заменить, создаются копии новых версий в каталоге %TMP% и в реестре создается ключ HLMK\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations, содержащий список этих файлов. Программа инсталляции запрашивает перезагрузку и после нее выполняет копирование. Это процедура в моем случае прекрасно выполняется.
Кто подскажет в чем загвоздка с диалогом FileInUse?