C# для профессионалов. Том II
Шрифт:
Программы установки
Можно добавить программу установки в службу, переключаясь в представление конструктора в Visual Studio.NET и выбирая параметр Add Installer из контекстного меню. С помощью этого параметра создается новый класс
ProjectInstaller
и экземпляры ServiceProcessInstaller
и ServiceInstaller
: Диаграмма классов установки для служб должна помочь пониманию созданного мастером кода:
< image l:href="#"/>Помня
ProjectInstaller.cs
, созданный с помощью параметра Add Installer. Класс Installer
Класс
ProjectInstaller
выводится из класса System.Configuration.Install.Installer
. Класс Installer
является базовым классом для всех специальных классов установки. С его помощью создается установка на основе транзакций, при которой можно вернуться в предыдущее состояние, если установка отказывает. При откате все изменения, сделанные при установке, будут отменены. Как можно видеть на диаграмме, класс Installer
имеет методы Install
, Commit
, Rollback
и Uninstall
, вызываемые из программ установки. Атрибут
RunInstaller(true)
означает, что при установке сборки должен вызываться класс ProjectInstaller
. Специальные программы установки действий, а также утилита installutil.exe
(которая будет использоваться позднее) проверяют атрибут: using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
namespace Wrox.ProfessionalCSharp {
/// <summary>
/// Краткое описание ProjectInstaller
/// </summary>
[RunInstaller(true)]
public class ProjectInstaller : System.Configuration.Install.Installer {
Классы ServiceProcessInstaller и ServiceInstaller
Аналогично приложениям Windows Forms метод
InitializeComponent
вызывается внутри конструктора класса ProjectInstaller
. В методе InitializeComponent
создается экземпляр класса ServiceProcessInstaller
и класса ServiceInstaller
. Оба эти класса выводятся из класса ComponentInstaller
, который сам является Installer
. Классы, производные из
ComponentInstaller
, используются как части процесса установки. Помните, что служебный процесс может включать более одной службы. Класс ServiceProcessInstaller
применяется для части процесса установки, а класс ServiceInstaller
для части службы, поэтому один экземпляр ServiceInstaller
требуется для каждой службы. Если в процессе имеется три службы, то необходимо добавить дополнительные объекты ServiceInstaller
, в таком случае понадобятся три экземпляра ServiceInstaller
. private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller1;
private System.ServiceProcess.ServiceInstaller serviceInstaller1;
/// <summary>
///
требуемые переменные конструктора.
/// </summary>
private System.ComponentModel.Container components;
public ProjectInstaller {
// Этот вызов затребован конструктором.
InitializeComponent;
// TODO: добавить инициализацию после вызова InitComponent
}
/// <summary>
/// Требуемый метод для поддержки конструктора — не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
private void InitializeComponent {
this.serviceProcessInstaller1 =
new System.ServiceProcess.ServiceProcessInstaller;
this.serviceInstaller1 =
new System.ServiceProcess.ServiceInstaller;
//
// serviceProcessInstaller1
//
this.serviceProcessInstaller1.Password = null;
this.serviceProcessInstaller1.UserName = null;
//
// serviceInstaller1
//
this.serviceInstaller1.ServiceName = "QuoteService";
//
// ProjectInstaller
//
this.Installers.AddRange(
new System.Configuration.Install.Installer[] {
this.serviceProcessInstaller1, this.serviceInstaller1});
}
}
}
ServiceProcessInstaller
устанавливает исполняемый файл, который реализует класс ServiceBase
. ServiceProcessInstaller
имеет свойства для всего процесса и для всех служб внутри процесса: Свойства ServiceProcessInstaller | |
---|---|
Username , Password | Указывают учетную запись пользователя, с которой выполняется служба, если свойство RunUnderSystemAccount задано как false. |
Account | С помощью этого свойства можно определить, будет ли служба выполняться с системной учетной записью. |
HelpText | Свойство только для чтения, которое возвращает справочный текст для задания имени пользователя и пароля. |
Поделиться:
Популярные книги
Убивать чтобы жить 4
4. УЧЖ
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Новик
2. Помещик
Фантастика:
альтернативная история
6.67
рейтинг книги
Инвестиго, из медика в маги. Том 6. Финал
6. Инвестиго
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Законы Рода. Том 11
11. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Леди Малиновой пустоши
Любовные романы:
любовно-фантастические романы
6.20
рейтинг книги
Аристократ из прошлого тысячелетия
3. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга IX
9. КО: Страж Кодекса
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Солнечный корт
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Охота на царя
2. Сыщик Его Величества
Детективы:
исторические детективы
8.68
рейтинг книги
Доктора вызывали? или Трудовые будни попаданки
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Страж Кодекса. Книга III
3. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Неудержимый. Книга V
5. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 8
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Надуй щеки! Том 6
6. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00