2008-09-12 10 views
55

Ich erstelle ein Installationsprogramm für eine Website, die eine benutzerdefinierte Ereignisprotokollquelle verwendet. Ich möchte, dass unser WiX-basiertes Installationsprogramm diese Ereignisprotokollquelle während der Installation erstellt.Wie erstelle ich eine Ereignisprotokollquelle mit WiX

Kennt jemand den besten Weg, dies mit dem WiX-Framework zu tun.

+3

Das ist erstaunlich. Ich suchte genau nach dieser Lösung und fand es zu dunkel, um hier vielleicht schon beantwortet zu werden. Stelle dir das vor. –

Antwort

50

Wix unterstützt sofort die Erstellung von Ereignisprotokollquellen.

Angenommen, Sie verwenden Wix 3, müssen Sie zuerst einen Verweis auf WixUtilExtension entweder zu Ihrem Votive-Projekt oder zur Befehlszeile hinzufügen. Sie können dann ein Element unter einer Eventsource-Komponente hinzufügen:

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

Wenn dies ein .NET-Projekt ist, können Sie EventLogMessages.dll im Rahmen Verzeichnis wie die Nachrichtendatei verwenden.

+1

[WindowsFolder] Microsoft.NET \ Framework \ v2.0.50727 \ EventLogMessages.dll –

+8

Wenn Sie die WixNetFxExtension verwenden, können Sie [NETFRAMEWORK20INSTALLROOTDIR] EventLogMessages.dll –

+1

Nur eine Warnung für jeden, der Wim Vorschlag versucht; Eigenschaften können nicht vom Ergebnis anderer Sucheigenschaften abhängen (welche 'NETFRAMEWORK *' sind). Ich habe gerade lange versucht herauszufinden, warum eine 'DirectorySearch' mit' NETFRAMEWORK40CLIENTINSTALLROOTDIR' nicht funktionierte ...: P – porges

14

Gerade Leute einige Zeit sparen - wenn Sie das Anwendungsprotokoll verwenden möchten, und die .NET-Nachrichten, die Sie den Code unten schneiden kann einfügen:

<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" 
/> 

HINWEIS: der Pfad oben jetzt korrekt ist ..

+1

ist es immer noch v2.0.50727 oder verwendet eine .NET 4-Anwendung v4.0 ...? – gbjbaanb

+3

@gbjbaanb .Net 4.5 verwendet 'C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ EventLogMessages.dll' –

15

Wie über die flexibleren Material eingebaut:

EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll" 

oder

EventMessageFile="[NETFRAMEWORK40FULLINSTALLROOTDIR]EventLogMessages.dll" 

Und

EventMessageFile="[NETFRAMEWORK40FULLINSTALLROOTDIR64]EventLogMessages.dll" 
+0

Funktioniert es jemand? – CallMeLaNN

+8

Nicht ganz korrekt. In Wix 3.5 sollte es [NETFRAMEWORK40FULLINSTALLROOTDIR] oder [NETFRAMEWORK40FULLINSTALLROOTDIR64] (für 64bit) sein - siehe http://wix.sourceforge.net/manual-wix3/wixnetfxextension.htm. Und denken Sie daran, eine PropertyRef einzufügen. –