Я пишу установщик WIX, и у меня есть следующее требование:
Во время установки я должен передать полный путь файлу (позволяет, называют это A), включенный в мой установщик к COM-компоненту, который уже существует на жестком диске и является частью другой программы. Я уже записал соответствующее Пользовательское действие, которое ожидает путь к файлу A. Я не хочу включать как файл, установленный в папке Program Files и удаленный во время процесса удаления. Вместо этого я хотел бы поместить единственный временный файл на жесткий диск, назвать мое Пользовательское действие, которое заставит COM-компонент использовать содержание A и затем удалять из диска. Существует ли простой способ выполнить эту цель?
Я попытался использовать Двоичную Таблицу и сохранить там, однако я не знаю, как сослаться на полный путь использования. Я знаю, что мог поместить за пределами файла MSI, но я хотел бы сохранить каждый установщик файла потребностями в единственном MSI.
Любая справка ценилась бы.
Я бы выбрал такой подход.
Установите файл "A" в любой каталог. Запустите пользовательское действие, необходимое для обновления COM-компонента. Затем запустите другое пользовательское действие или измените текущее, чтобы удалить файл после того, как он перестанет использоваться. Это не оставит следов файла "A", и если вы запланируете выполнение пользовательского действия только во время установки, вам не придется беспокоиться об этом при удалении.
Удаление файла, установленного MSI, означает, что MSI сочтет его "сломанным" "и попытайтесь отремонтировать его автоматически, если потребуется. В некоторых случаях это происходит автоматически (например, при рекламировании ярлыков и регистрации через COM), поэтому я бы не рекомендовал это делать. Вместо этого оставьте файл там - он сделал свою работу, и нет ничего плохого в том, чтобы оставить его там.