【发布时间】:2010-09-08 16:22:32
【问题描述】:
我正在为使用自定义事件日志源的网站创建安装程序。我希望我们基于 WiX 的安装程序在安装期间创建该事件日志源。
有谁知道使用 WiX 框架的最佳方法。
【问题讨论】:
-
这太棒了。我一直在寻找这个解决方案,并认为它太晦涩了,可能已经在这里得到了回答。去图吧。
标签: wix event-log eventlog-source
我正在为使用自定义事件日志源的网站创建安装程序。我希望我们基于 WiX 的安装程序在安装期间创建该事件日志源。
有谁知道使用 WiX 框架的最佳方法。
【问题讨论】:
标签: wix event-log eventlog-source
Wix 开箱即用地支持创建事件日志源。
假设您使用 Wix 3,您首先需要在您的 Votive 项目或命令行中添加对 WixUtilExtension 的引用。然后,您可以在组件下添加 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项目,可以使用framework目录下的EventLogMessages.dll作为消息文件。
【讨论】:
NETFRAMEWORK* 是)。只是花了很长时间试图弄清楚为什么使用NETFRAMEWORK40CLIENTINSTALLROOTDIR 的DirectorySearch 不起作用...:P
只是为了节省一些时间 - 如果您尝试使用应用程序日志和 .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"
/>
注意:上面的路径现在是正确的..
【讨论】:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\EventLogMessages.dll
内置更灵活的东西怎么样:
EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll"
或
EventMessageFile="[NETFRAMEWORK40FULLINSTALLROOTDIR]EventLogMessages.dll"
还有
EventMessageFile="[NETFRAMEWORK40FULLINSTALLROOTDIR64]EventLogMessages.dll"
【讨论】: