回答
Wix具有创建事件日志源的开箱即用支持。
假设您使用Wix 3,首先需要将对WixUtilExtension的引用添加到您的Votive项目或命令行中。然后,您可以添加一个EventSource的元素的组成部分下:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Component ...>
...
<util:EventSource Log="Application" Name="*source name*"
EventMessageFile="*path to message file*"/>
...
</Component>
如果这是一个.NET项目,您可以在框架目录作为邮件文件中使用EventLogMessages.dll。
[WindowsFolder] Microsoft.NET \ Framework \ v2.0.50727 \ EventLogMessages.dll – 2009-02-18 01:32:57
如果您使用WixNetFxExtension,则可以使用[NETFRAMEWORK20INSTALLROOTDIR] EventLogMessages.dll – 2009-02-22 13:03:20
仅对任何尝试Wim建议的人发出警告;属性不能依赖于其他搜索属性(`NETFRAMEWORK *`)的结果。只花了很长时间试图找出为什么使用“NETFRAMEWORK40CLIENTINSTALLROOTDIR”的DirectorySearch没有工作...:P – porges 2010-09-28 01:46:16
只是为了救人一段时间 - 如果你要使用的应用程序日志,你可以削减了.NET的消息粘贴下面的代码:
<Util:EventSource
xmlns:Util="http://schemas.microsoft.com/wix/UtilExtension"
Name="ROOT Builder"
Log="Application"
EventMessageFile="%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll"
/>
注:上面的路径现在是正确的..
如何建在更灵活的东西:
EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll"
或
EventMessageFile="[NETFRAMEWORK40FULLINSTALLROOTDIR]EventLogMessages.dll"
而且
EventMessageFile="[NETFRAMEWORK40FULLINSTALLROOTDIR64]EventLogMessages.dll"
这是惊人的。我一直在寻找这个解决方案,并认为这太可能已经在这里得到解答。去搞清楚。 – 2010-05-21 17:09:24