Я пытаюсь установить сервисный проект окон C# использование VisualStudio. Сетевой проект развертывания.
Для выполнения проекта развертывания, я щелкаю правой кнопкой и выбираю "установку" из контекстного меню, выполнения мастера установки, и в конечном счете предлагает мне с "Сервисным диалоговым окном" Входа в систему Набора, которое просит имя пользователя и пароль.
Когда я устанавливаю сервис с помощью утилиты кв/см из командной строки, я не должен обеспечивать учетные данные.
Я должен создать вход в систему только для этого сервиса? Я предпочел бы использовать "Локальную Систему" или "Сетевую службу" (не уверенный, что различие), как другие сервисы делают.
Добавьте этот код в метод private void InitializeComponent()
в файле projectInstaller.Designer.cs
в вашем проекте windows service.
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
если определение вашего процесса установки следующее:
private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller1;
В проект, содержащий службу, добавьте класс установщика. Сделайте это примерно так:
[RunInstaller(true)]
public class MyServiceInstaller : Installer
{
public MyServiceInstaller()
{
ServiceProcessInstaller serviceProcessInstaller = new ServiceProcessInstaller();
serviceProcessInstaller.Account = ServiceAccount.LocalSystem; // Or whatever account you want
var serviceInstaller = new ServiceInstaller
{
DisplayName = "Insert the display name here",
StartType = ServiceStartMode.Automatic, // Or whatever startup type you want
Description = "Insert a description for your service here",
ServiceName = "Insert the service name here"
};
Installers.Add(_serviceProcessInstaller);
Installers.Add(serviceInstaller);
}
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
// This will automatically start your service upon completion of the installation.
try
{
var serviceController = new ServiceController("Insert the service name here");
serviceController.Start();
}
catch
{
MessageBox.Show(
"Insert a message stating that the service couldn't be started, and that the user will have to do it manually");
}
}
}
Затем в обозревателе решений щелкните правой кнопкой мыши проект развертывания и выберите «Просмотр»> «Пользовательские действия». Щелкните правой кнопкой мыши «Настраиваемые действия» и выберите «Добавить настраиваемое действие ...». Выберите папку приложения и выберите основной вывод проекта, который содержит службу. Теперь пользовательские действия ( Зафиксировать
сверху) будут выполнены при установке. Вы можете добавить дополнительные методы ( Установить
, Откат
, Удалить
), если вам нужны другие настраиваемые действия.