2008-09-12 69 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"