WIX: использование временного файла во время установки - PullRequest
7 голосов
/ 12 апреля 2010

Я пишу установщик WIX, и у меня есть следующее требование:
Во время установки мне нужно передать абсолютный путь к файлу (назовем его A), включенному в мой установщик, в компонент COM, который уже существует на жестком диске и является частью другой программы. Я уже написал соответствующее пользовательское действие, которое ожидает путь к файлу A. Я не хочу включать A в качестве файла, установленного в папке Program Files и удаленного во время процесса удаления. Вместо этого я хотел бы поместить A только временно на жесткий диск, вызвать мое Custom Action, которое заставит COM-компонент использовать содержимое A, а затем удалить A с диска. Есть ли простой способ достичь этой цели?

Я пытался использовать двоичную таблицу и хранить там A, однако я не знаю, как ссылаться на A, используя абсолютный путь. Я знаю, что могу поместить A вне MSI-файла, но я бы хотел, чтобы каждый установщик файлов нуждался в одном MSI.

Любая помощь будет оценена.

Ответы [ 2 ]

8 голосов
/ 13 апреля 2010

Удаление файла, установленного MSI, означает, что MSI сочтет его «поврежденным» и попытается автоматически восстановить его, если для этого потребуется. Это происходит автоматически в нескольких случаях (например, рекламируемые ярлыки и регистрация COM), поэтому я рекомендую это делать. Вместо этого оставьте файл там - он сделал свою работу, и нет ничего плохого в том, чтобы оставить его там.

7 голосов
/ 12 апреля 2010

Я бы выбрал этот подход.

Установите файл «А» в любой каталог. Запустите пользовательское действие, необходимое для обновления COM-компонента. Затем запустите другое настраиваемое действие или измените написанное в настоящий момент, чтобы удалить файл после того, как он больше не используется. Это не оставит следов файла «A», и если вы запланируете выполнение пользовательского действия только во время установки, вам не придется беспокоиться об этом при удалении.

...