Nea*_*ers 6 windows-installer wix
有人告诉我,WIX中的CustomAction有一种方法可以在控制台日志中显示输出.我在一个名为SettingsFileGenerator.xml的文件中包含一个名为XmlPreprocess.exe的.exe来操作我的web.config,
我的运行方式如下: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>
Run Code Online (Sandbox Code Playgroud)
安装日志显示如下:
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.
Run Code Online (Sandbox Code Playgroud)
这是我第一次尝试做WIX,所以请忍受我的无知.
谢谢
更新:
这是另一个论坛的引用 - 但他没有说明它是如何工作的,而且他似乎没有经常回来查看.
WiX有一个自定义操作,捕获控制台输出并将其直接粘贴到详细的MSI日志中,这就是我使用的.
参考: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类来调用可执行文件,读取StandardError和StandardOutput流,并使用Session.Log上面提到的方法记录所有内容.
编辑:我不知道在wix中将控制台输出发送到日志的任何标准自定义操作.试试wix-users邮件列表.
| 归档时间: |
|
| 查看次数: |
9088 次 |
| 最近记录: |