Следуя совету от Henk , я создал проект установки в VS10 с целью добавления настраиваемого действия. Мы надеемся, что это настраиваемое действие добавит EventLog во время работы от имени администратора (т.е. во время установки), а не заставит мое приложение создавать исключение в ОС с UAC.
К сожалению, у меня обычно нет доступа к ОС, которая использует 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 Меня особенно беспокоит, что я указываю реальное имя журнала, но не фактический источник. Будет ли это иметь значение?