Установка службы Windows из отдельного графического интерфейса - как установить файл .config вместе с ним? - PullRequest
1 голос
/ 30 декабря 2010

Я написал графический интерфейс (назовите его MyGUI) для развертывания ClickOnce на любом данном клиентском сайте. Этот графический интерфейс устанавливает и настраивает службу Windows (MyService), используя метод, описанный here @Marc Gravell. Вот мой код, запускаемый изнутри MyGUI, который содержит ссылку на MyService:

using (var inst = new AssemblyInstaller(typeof(MyService.Program).Assembly, new string[] { })) {
  IDictionary state = new Hashtable();
  inst.UseNewContext = true;
  try {
    if (uninstall) {
      inst.Uninstall(state);
    } else {
      inst.Install(state);
      inst.Commit(state);
    }
  } catch {
    try {
      inst.Rollback(state);
    } catch { }
    throw;
  }
}

Обратите внимание на первую строку: я беру сборку для MyService и устанавливаю ее. Проблема в том, что, как я сделал развертывание, я фактически ссылаюсь на файл EXE службы из папки приложения графического интерфейса. Так что теперь служба запускается и начинает искать вещи в файле MyService.config и не может их найти, потому что она находится в папке чьего-либо приложения, и присутствует только файл MyGUI.config графического интерфейса.

Итак, как мне сделать MyService.config доступным для службы?

1 Ответ

1 голос
/ 30 декабря 2010

Что ж, моя первая попытка тестирования развертывания ClickOnce сказала мне, что приложения ClickOnce не могут быть запущены от имени администратора, что означает, что я также не могу установить какие-либо службы Windows. Так что, думаю, с этим ответом я как бы не задал вопрос ... и мне нужно переосмыслить свою архитектуру ... (вздох) ...

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