Открытие окна / диалога из .Net Service - PullRequest
1 голос
/ 06 мая 2011

Я создал службу Windows C # .Net. Есть несколько файлов конфигурации, которые используются этим сервисом. Прямо сейчас у нас есть другой dll-компонент, который загружается приложением, и оттуда мы создаем файлы конфигурации. Я хочу, чтобы открыть этот компонент DLL из моего непосредственно службы. После опции, которую я хочу предоставить в окончательной версии exe службы, которая будет действовать как служба, а также как конфигуратор.

Допустим, exe-имя - SampleServ.exe, тогда параметры должны быть:

  1. Без каких-либо аргументов он должен запускаться как служба
  2. С аргументом вроде SampleServ.exe -config (вместо службы должен запускаться конфигуратор)

Я пытаюсь вот так

public static void Main(string[] args)
{
    if (args.Length == 0)
    {
        ServiceBase[] ServicesToRun;
        ServicesToRun = new ServiceBase[] 
        { 
           new Service1() 
        };
        ServiceBase.Run(ServicesToRun);

    }
    else
    {
        MainPage wnd = new MainPage();
        wnd.ShowDialog();
    }
}

Здесь MainPage является производным окном, и я не могу добавить пространство имен system.window из-за ограничения обслуживания.

Пожалуйста, дайте мне знать, если возможен другой путь.


После добавления еще одного компонента в ссылку на проект я могу это сделать. Я добавил ссылки, такие как «PresentationCore», «PresentatinoFramework», «System.Xaml». Я просто хотел знать, если какие-либо последствия добавления такого компонента. Есть идеи?

В противном случае теперь мой код работает ...

Ответы [ 2 ]

1 голос
/ 06 мая 2011

Привет, это полный пример того, что вам нужно, он также включает функцию установки / удаления

http://blogs.microsoft.co.il/blogs/kim/archive/2009/01/04/self-installing-windows-service.aspx

0 голосов
/ 06 мая 2011

Используйте Environment.GetCommandLineArgs для получения аргументов (индекс 0 - это имя программы, но будьте осторожны).Если аргумент 1 не является "-config", запустите как службу, в противном случае покажите форму конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...