2008-09-12 71 views
55

我正在为使用自定义事件日志源的网站创建安装程序。我希望我们的基于WiX的安装程序在安装期间创建该事件日志源。如何使用WiX创建事件日志源

有谁知道使用WiX框架来做到这一点的最佳方法。

+3

这是惊人的。我一直在寻找这个解决方案,并认为这太可能已经在这里得到解答。去搞清楚。 – 2010-05-21 17:09:24

回答

50

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。

+1

[WindowsFolder] Microsoft.NET \ Framework \ v2.0.50727 \ EventLogMessages.dll – 2009-02-18 01:32:57

+8

如果您使用WixNetFxExtension,则可以使用[NETFRAMEWORK20INSTALLROOTDIR] EventLogMessages.dll – 2009-02-22 13:03:20

+1

仅对任何尝试Wim建议的人发出警告;属性不能依赖于其他搜索属性(`NETFRAMEWORK *`)的结果。只花了很长时间试图找出为什么使用“NETFRAMEWORK40CLIENTINSTALLROOTDIR”的DirectorySearch没有工作...:P – porges 2010-09-28 01:46:16

14

只是为了救人一段时间 - 如果你要使用的应用程序日志,你可以削减了.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" 
/> 

注:上面的路径现在是正确的..

15

如何建在更灵活的东西:

EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll" 

EventMessageFile="[NETFRAMEWORK40FULLINSTALLROOTDIR]EventLogMessages.dll" 

而且

EventMessageFile="[NETFRAMEWORK40FULLINSTALLROOTDIR64]EventLogMessages.dll"