![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
ZeroMem |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 24.8.2004 Где: Комсомольск-на-Ам уре Репутация: нет Всего: нет |
Уф... Прива всем! Прошу не бить ногамт
![]() ![]() Дело вот в чем. На .NET я новичек, как бы приглядывал сверху, но глубоко не копался. И вот сейчас встала такая вот у меня проблема. Я не совсем понимаю, как можно произвести "ручную" установку сервиса в C#. То есть если бы я писал на C++ это, то в момент обнаружения того, что моего сервиса просто нету в БД SCM при запуске программы/, выполнися примерно следующий псевдокод: void InstallService() { [Открыть SCM базу данных и проверить права пользователся на добавление] [Заполнить необходимые структуры] [Непосредственно вызвать CreateService и обработать ошибки] [сделать очистку] } как почитал на форуме тут, я бы хотел обойтись без средств WMI. Полностью. Хотя как я понял, .NET капец к ним сильно привязана... (((. Даже частоту проца и то через кучу абстракций искать приходится... эхь... а так всего несколько ассемблерных вставок и готово))) ЗЫ. Извините за флуд. |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Запихнуть утилиту InstallUtil.exe в ресурсы, распаковывать её в Temp и оттуда запускать для установки сервиса
![]() -------------------- ![]() |
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
Может я что-то недопонял (стиль изложения проблемы не из простых), но предлагаю соорудить класс иснталлятора (типа MyDreamInstaller), порожденный от System.Configuration.Install.Installer.
Включить в него ServiceProcessInstaller и ServiceInstaller. Дальше - по мануалу. В итоге вызвать MyDreamInstaller.Install() -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
ZeroMem |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 24.8.2004 Где: Комсомольск-на-Ам уре Репутация: нет Всего: нет |
По документации, она сама использует классы ServiceInstaller и ServiceProcessInstaller... так что решение должно быть. Они смогли, значит и мы можем. Кстати, не понимаю толком в чем разница между этими классами...
![]() Добавлено @ 19:07 tol05, любопытно... была такая мысль. Сейчас посмотрим. Добавлено @ 19:10 Сюда же вопрос: через этот класс я смогу спокойно удалить сервис? Добавлено @ 19:18 Хм... интересно... MyDreamInstaller.Install() по-идее должен принимать еще параметр IDictionary stateSaver. Вот это меня с толку сбило. |
|||
|
||||
Stepan_Lameroff |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 16.12.2006 Репутация: 9 Всего: 14 |
|
|||
|
||||
ZeroMem |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 24.8.2004 Где: Комсомольск-на-Ам уре Репутация: нет Всего: нет |
Все бы да хорошо, но я как раз искалл более простой метод установки, чем через WinAPI. Понимаете, уже как бы разобрался практически во всем. Только одного не могу понять: в Installer.Install там функция принимает параметр типа IDictionary для временного сохранения информации об установочных параметрах дабы потом моно было откатить все изменения. Вопрос в том, что ну не могу найим какой класс можно использовать для этого дела! Ну хоть ты тресни!
![]() ![]() ![]() ![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Как насчёт Dictionary<object, object> ? -------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |