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

WIX CustomAction-如何在安装/日志中获取更多信息,wix,windows-installer,Wix,Windows Installer,有人告诉我WIX中的CustomAction可以在控制台日志中显示输出。我在一个名为SettingsFileGenerator.xml的文件中包含了一个名为XmlPreprocess.exe的.exe来操作我的web.config,该文件基于parms 我是这样跑的: msiexec/i bin\Debug\TFBIC.RCT.WCFWebServicesWIXSetup.msi/L*V“C:\logs\WixInstall01.log” 这是我的WIX构建文件: <CustomActi

有人告诉我WIX中的CustomAction可以在控制台日志中显示输出。我在一个名为SettingsFileGenerator.xml的文件中包含了一个名为XmlPreprocess.exe的.exe来操作我的web.config,该文件基于parms

我是这样跑的: 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>
这是我第一次尝试做WIX,所以请容忍我的无知

谢谢

更新:

这是另一个论坛的一段引文,但他没有具体说明它是如何工作的,而且他似乎也没有经常回头看

WiX有一个自定义操作,用于捕获 控制台输出并将其粘住 直接进入详细的MSI日志,所以 我就是这么用的

参考:

这就是他所说的工具吗? 我在尝试时遇到以下错误: 错误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调用可执行文件,读取和流,并使用上面提到的
Session.log
方法记录所有内容


编辑:我不知道有哪个会将控制台输出发送到日志。试试。

在我最初的问题中,有人告诉我有一个自定义操作可以捕获控制台输出。你知道怎么找到它吗。我会去谷歌搜索更多。不是我写的,这是CodePlex的XmlPreprocess。解决方案有什么更新吗?很抱歉,那是10年前的事了,从那以后就没用过Wix了。
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.