60 votes

Comment créer une source de journal d'événement en utilisant WiX

Je suis en train de créer un programme d'installation pour un site Web qui utilise une source de journal d'événements personnalisée. J'aimerais que notre installateur basé sur WiX crée cette source de journal d'événements pendant l'installation.

Quelqu'un connaît-il la meilleure façon de procéder en utilisant le cadre WiX ?

3 votes

C'est incroyable. Je cherchais exactement cette solution, et je pensais qu'elle était trop obscure pour être déjà traitée ici. Allez comprendre.

55voto

Paul Lalonde Points 3940

Wix dispose d'un support prêt à l'emploi pour la création de sources de journaux d'événements.

En supposant que vous utilisez Wix 3, vous devez d'abord ajouter une référence à WixUtilExtension soit à votre projet Votive, soit à la ligne de commande. Vous pouvez ensuite ajouter un élément EventSource sous un composant :

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

S'il s'agit d'un projet .NET, vous pouvez utiliser EventLogMessages.dll dans le répertoire du framework comme fichier de message.

2 votes

[WindowsFolder]Microsoft.NET \Framework\v2.0.50727\EventLogMe ssages.dll

8 votes

Si vous utilisez l'extension WixNetFx, vous pouvez utiliser [NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll.

1 votes

Juste un avertissement pour tous ceux qui essaient la suggestion de Wim ; les propriétés ne peuvent pas dépendre du résultat d'autres propriétés de recherche (qui NETFRAMEWORK* sont). Je viens de passer des heures à essayer de comprendre pourquoi un DirectorySearch en utilisant NETFRAMEWORK40CLIENTINSTALLROOTDIR ne fonctionnait pas... :P

18voto

Gordon Points 514

Pour vous faire gagner du temps, si vous essayez d'utiliser le journal des applications et les messages .NET, vous pouvez copier-coller le code ci-dessous :

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

NOTE : le chemin ci-dessus est maintenant correct

1 votes

Est-ce toujours la version 2.0.50727 ou est-ce qu'une application .NET 4 utilise la version 4.0... ?

6 votes

@gbjbaanb Utilisation de .Net 4.5 C:\Windows\Microsoft.NET\Framework\v4.0.30319\EventLogMessag‌​es.dll

17voto

Que pensez-vous de l'intégration d'éléments plus flexibles ?

EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll"

o

EventMessageFile="[NETFRAMEWORK40FULLINSTALLROOTDIR]EventLogMessages.dll"

Et

EventMessageFile="[NETFRAMEWORK40FULLINSTALLROOTDIR64]EventLogMessages.dll"

8 votes

Pas tout à fait correct. Dans Wix 3.5, ce devrait être [NETFRAMEWORK40FULLINSTALLROOTDIR] ou [NETFRAMEWORK40FULLINSTALLROOTDIR64] (pour 64bit) - voir wix.sourceforge.net/manuel-wix3/wixnetfxextension.htm . Et n'oubliez pas d'y inclure un PropertyRef.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X