WIX CustomAction - как получить больше информации в install / log - PullRequest
5 голосов
/ 13 января 2010

Кто-то сказал мне, что у CustomAction в WIX есть способ отобразить вывод в журнале консоли. Я включаю .exe с именем XmlPreprocess.exe для управления моим web.config, основываясь на параметрах в файле с именем SettingsFileGenerator.xml,

Я бегу так: msiexec / i bin \ Debug \ TFBIC.RCT.WCFWebServicesWIXSetup.msi / L * V "C: \ logs \ WixInstall01.log"

Это мой файл сборки WIX:

 <CustomAction Id="**SAMPLE_CONFIG**" BinaryKey="XMLPREPROCESS" ExeCommand="/i:&quot;[INSTALLLOCATION]web.config&quot; /x:&quot;[INSTALLLOCATION]SettingsFileGenerator.xml&quot; /e:QA /d:ServiceLocation=[SERVICELOCATION]" Execute="deferred" />
    <Binary Id="XMLPREPROCESS" SourceFile="../TFBIC.RCT.WCFWebServices/RequiredBins/XMLPreprocess.exe" />
    <InstallExecuteSequence>
        <Custom Action="SAMPLE_CONFIG" After="StartServices"><![CDATA[NOT Installed]]></Custom>
    </InstallExecuteSequence>

Журнал установки показывает это:

Action 15:22:27: StartServices. Starting services
Action start 15:22:27: StartServices.
MSI (s) (58:CC) [15:22:27:898]: Note: 1: 2205 2:  3: ServiceControl
MSI (s) (58:CC) [15:22:27:898]: Note: 1: 2228 2:  3: ServiceControl 4: SELECT `Name`,`Wait`,`Arguments`,`Event`, `Action` FROM `ServiceControl`, `Component` WHERE `Component_` = `Component` AND (`Action` = 0 OR `Action` = 1 OR `Action` = 2)
Action ended 15:22:27: StartServices. Return value 1.
MSI (s) (58:CC) [15:22:27:899]: Doing action: SAMPLE_CONFIG
Action 15:22:27: SAMPLE_CONFIG.
Action start 15:22:27: **SAMPLE_CONFIG**.
SAMPLE_CONFIG:
Action ended 15:22:27: **SAMPLE_CONFIG**. Return value 1.

Это моя самая первая попытка сделать WIX, поэтому, пожалуйста, потерпите мое невежество.

Спасибо

UPDATE:

Это цитата из другого форума - но он не указывает, как это работает, и он, кажется, не часто проверяет.

WiX имеет настраиваемое действие, которое захватывает вывод на консоль и воткнут непосредственно в подробный журнал MSI, так это то, что я использую.

ссылка: http://xmlpreprocess.codeplex.com/Thread/View.aspx?ThreadId=79454

Будет ли это тем инструментом, о котором он говорит? http://wix.sourceforge.net/manual-wix2/qtexec.htm Я получаю эту ошибку при попытке: ошибка LGHT0103: система не может найти файл 'wixca.dll'. Я искал весь диск для этого .dll и не мог найти его.

1 Ответ

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

Чтобы включить все возможные журналы при установке MSI, используйте параметр /lvx* logfile.txt. Однако даже при этом не будут регистрироваться выходные данные STDOUT и STDERR приложений командной строки, вызванных как пользовательское действие.

Если вы написали собственное действие самостоятельно, вы можете добавить в него такую ​​запись. Например, библиотеки DTF, поставляемые с wix, имеют удобный метод Session.Log, который можно вызывать. См. c:\program files\windows installer xml v3\doc\dtf.chm, раздел «Написание управляемых настраиваемых действий» для получения дополнительной информации.

Если вы не написали приложение, вы можете написать специальное действие для его переноса. Такая оболочка может использовать класс .NET Process для вызова исполняемого файла, чтения потоков StandardError и StandardOutput и регистрации всего с помощью упомянутого метода Session.Log выше.

edit : Я не знаю ни одного стандартного пользовательского действия в wix , которое отправляет вывод консоли в журнал. Попробуйте список рассылки wix-пользователей .

...