#windows-installer #installshield #installshield-2011
#windows-installer #installshield #installshield-2011
Вопрос:
Как получить имя файла устанавливаемого файла?
Я хочу проверить, находится ли устанавливаемый файл уже в папке назначения, и переименовать существующий на какое-либо другое имя. Есть ли способ узнать имя файла, который устанавливается? (вокруг OnMoving() или около того?).
Примечание: я использую InstallScript MSI — InstallShield 2011 Premier
Ответ №1:
Вы можете попытаться прочитать имена файлов, которые ваш пакет установит во время выполнения, используя пользовательское действие, а затем проверить каталог установки, если он содержит другой файл с соответствующим именем.
Вот несколько примеров пользовательских действий, которые могут получить доступ к базе данных MSI во время установки: http://msdn.microsoft.com/en-us/library/Aa372865
Ответ №2:
Хотя я думаю, что вы можете перехватить установку файлов для каждого файла в чистом проекте InstallScript, вы не можете сделать это в MSI-проекте InstallScript на основе установщика Windows. Это потому, что установщик Windows не предоставляет такого рода перехвата. Поэтому, если вы хотите сделать что-то подобное, вам нужно будет выяснить, какие файлы будут перезаписаны заранее, и делать то, что вы хотите в этот момент, вместо ожидания события для каждого файла.