Muss eine Windows-Ereignisprotokollquelle manuell erstellt werden, wenn ein Windows-Dienst installiert wird?

Ich habe einen Windows-Dienst in C # entwickelt. Ich habe mit Visual Studio 2008 ein Installationsprogramm erstellt, mit dem der Windows-Dienst installiert wird. Alles ist soweit gut. Ich möchte sicherstellen, dass die Ereignisquelle zum Zeitpunkt der Installation erstellt wurde, damit alle Fehler- / Ausnahmebedingungen zur Laufzeit korrekt im Windows-Ereignisprotokoll protokolliert werden.

Wird die Ereignisquelle im Rahmen der Installation (und Deinstallation) des Windows-Dienstes automatisch erstellt (und entfernt), oder muss ich dies selbst tun und eine benutzerdefinierte Aktion erstellen, um sie wie folgt zu erstellen und zu löschen?

protected override void OnBeforeInstall(IDictionary savedState)
{
    base.OnBeforeInstall(savedState);

    if (!EventLog.SourceExists(ServiceName))
        EventLog.CreateEventSource(ServiceName, "Application");
}

protected override void OnAfterUninstall(IDictionary savedState)
{
    base.OnAfterInstall(savedState);

    if (EventLog.SourceExists(ServiceName))
        EventLog.DeleteEventSource(ServiceName);
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage