回答
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