gpt4 book ai didi

WIX CustomAction - 如何在安装/日志中获取更多信息

转载 作者:行者123 更新时间:2023-12-04 14:20:52 25 4
gpt4 key购买 nike

有人告诉我 WIX 中的 CustomAction 有一种方法可以在控制台日志中显示输出。我包含一个名为 XmlPreprocess.exe 的 .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,所以请容忍我的无知。

谢谢

更新:

这是来自另一个论坛的引述 - 但他没有具体说明它是如何工作的,而且他似乎也不经常回来查看。

WiX has a custom action that captures the console output and sticks it directly into the verbose MSI log, so that's what I use.



引用: http://xmlpreprocess.codeplex.com/Thread/View.aspx?ThreadId=79454

这会是他所说的工具吗?
http://wix.sourceforge.net/manual-wix2/qtexec.htm
尝试时出现此错误:
错误 LGHT0103:系统找不到文件“wixca.dll”。
我已经在整个磁盘上搜索了这个 .dll,但没有找到。

最佳答案

要在安装 msi 时启用所有可能的日志记录,请使用 /lvx* logfile.txt选项。但是,即使这样也不会记录作为自定义操作调用的命令行应用程序的 STDOUT 和 STDERR 输出。

如果您自己编写了自定义操作,则可以向其中添加此类日志记录。例如,wix 附带的 DTF 库有一个方便的 Session.Log可以调用的方法。见 c:\program files\windows installer xml v3\doc\dtf.chm ,主题“编写托管自定义操作”以获取更多信息。

如果您还没有编写应用程序,您可以编写一个自定义操作来包装它。这样的包装器可以使用 .NET Process class要调用可执行文件,请阅读 StandardErrorStandardOutput流,并使用 Session.Log 记录所有内容上面提到的方法。

编辑 : 我不知道有任何standard custom action in wix将控制台输出发送到日志。试试 wix-users mailing list .

关于WIX CustomAction - 如何在安装/日志中获取更多信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2052536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com