Как получить имя файла устанавливаемого файла?

#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 не предоставляет такого рода перехвата. Поэтому, если вы хотите сделать что-то подобное, вам нужно будет выяснить, какие файлы будут перезаписаны заранее, и делать то, что вы хотите в этот момент, вместо ожидания события для каждого файла.