WIX CustomAction - как получить дополнительную информацию в install/log

108
10

Кто-то сказал мне, что есть способ для 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:"[INSTALLLOCATION]web.config" /x:"[INSTALLLOCATION]SettingsFileGenerator.xml" /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 и не смог найти его.

спросил(а) 2021-01-25T16:58:22+03:00 4 месяца, 4 недели назад
1
Решение
131

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


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

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


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

ответил(а) 2021-01-25T16:58:22+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема