WIX: где и как мой CustomAction должен создавать и читать временный файл ?

У меня есть сценарий CustomAction (Да, я знаю все мнения, которые говорят не используют сценарий CustomActions . У меня другое мнение.)

Я ' Я хочу запустить команду и записать результат. Я могу сделать это с помощью COM-объекта WScript.Shell, затем вызовем shell.Exec () . Но при этом мигает видимое окно консоли для выполненной команды.

Чтобы этого избежать, я могу использовать вызов shell.Run () и указать «скрытый» для внешнего вида окна. Но .Run () не дает мне доступа к StdOut выполняемого процесса, поэтому мне нужно создать временный файл и перенаправить вывод exe во временный файл, а затем прочитать этот временный файл в скрипте.

Некоторые вопросы:

  • это сработает?

  • Как мне сгенерировать имя для временного файла? В .NET я мог бы использовать статический метод в пространстве имен System.IO, но здесь я использую скрипт. Мне нужно убедиться, что у пользователя есть доступ к RW, а также, что никакая антивирусная программа не будет рвать на этом.

  • Идеи получше? Я очень стараюсь избегать C / C ++.


Я мог бы избежать всего этого, если бы существовал способ запрашивать веб-сайты в IIS7 из сценария, не прибегая к пакету совместимости IIS6, без использования .NET ( Microsoft.Web.Administration.ServerManager ) и без выполнения процесса ( список сайтов appcmd ). Я уже задавал отдельный вопрос по этой теме ; любые предложения по этому поводу также будут оценены.

8
задан Community 23 May 2017 в 12:25
поделиться