繼advice of Henk後,我在VS10中創建了一個安裝項目,目的是添加一個自定義操作。這個自定義操作將有希望添加EventLog,同時以管理員身份運行(即在安裝期間),而不是讓我的應用程序在使用UAC的操作系統上引發異常。此代碼在安裝時是否會創建EventLog?
不幸的是,我通常不能訪問使用UAC的操作系統。我下一次做,我希望安裝順利。
考慮到這一點,下面的代碼中有什麼顯然是錯的?
using System;
using System.Diagnostics;
namespace EventLogCreator
{
class Program
{
static void Main(string[] args)
{
switch (args[0])
{
case "-i":
if (!EventLog.Exists("SSD Log"))
{
Console.WriteLine("Log not found, creating.");
EventLog.CreateEventSource("setup", "SSD Log");
}
break;
case "-u":
if (EventLog.Exists("SSD Log"))
{
Console.WriteLine("Log found, removing.");
EventLog.Delete("SSD Log");
}
break;
}
}
}
}
該項目的輸出被吸入安裝項目中。然後,我有兩個自定義操作:
- 上安裝帶有「-i」作爲參數
- 在卸載與「-u」作爲參數
我不期待一個免費的代碼審查,但我在這裏冒險未知,所以我會很高興,如果我哼了一堆垃圾。
PS我特別擔心的是我指定的實際日誌名稱,但不是實際的來源。這很重要嗎?
爲了澄清,EventLogInstaller位於System.Diagnostics名稱空間中。 – Llyle 2011-02-21 02:13:35
謝謝vanslly,修復了這個錯誤。 – Schalk 2011-03-04 13:37:04