Чтение онлайн

на главную - закладки

Жанры

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
рейтинг книги
Убивать чтобы жить 4

Новик

Ланцов Михаил Алексеевич
2. Помещик
Фантастика:
альтернативная история
6.67
рейтинг книги
Новик

Инвестиго, из медика в маги. Том 6. Финал

Рэд Илья
6. Инвестиго
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Инвестиго, из медика в маги. Том 6. Финал

Законы Рода. Том 11

Flow Ascold
11. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 11

Леди Малиновой пустоши

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.20
рейтинг книги
Леди Малиновой пустоши

Аристократ из прошлого тысячелетия

Еслер Андрей
3. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Аристократ из прошлого тысячелетия

Страж Кодекса. Книга IX

Романов Илья Николаевич
9. КО: Страж Кодекса
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Страж Кодекса. Книга IX

Солнечный корт

Сакавич Нора
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Солнечный корт

Охота на царя

Свечин Николай
2. Сыщик Его Величества
Детективы:
исторические детективы
8.68
рейтинг книги
Охота на царя

Доктора вызывали? или Трудовые будни попаданки

Марей Соня
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Доктора вызывали? или Трудовые будни попаданки

Страж Кодекса. Книга III

Романов Илья Николаевич
3. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Страж Кодекса. Книга III

Неудержимый. Книга V

Боярский Андрей
5. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга V

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

Надуй щеки! Том 6

Вишневский Сергей Викторович
6. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Надуй щеки! Том 6