Как изменить имя моей службы Windows?
У меня есть служба Windows и вы хотите изменить ее имя (как показано в приложении "Службы" ). Но я не знаю, как правильно это сделать. Кажется, это свойство ServiceName и поиск по моему решению. Я нашел это:
namespace SI.AService.AService
{
partial class AService
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
//
// AService
//
this.ServiceName = "Company.AService.AService";
}
#endregion
}
}
Итак, это, кажется, автогенерированный код. Каков правильный способ его изменения? В нем говорится: "Не изменяйте содержимое этого метода с помощью редактора кода". Итак, где я могу его изменить?
Обновление: Я обновлял свою службу Windows через процесс сборки в Visual Studio, что, по-видимому, не влияет на изменения имен, установленные в установщике служб. Я думаю, что он запускает команду удаления и установки с помощью InstallUtil. Вместо этого мне пришлось перейти в выходной каталог процесса сборки, где находятся 2 файла. Msi файл и файл setup.exe. Служба msi устанавливает службу, но нет изменений имени. Однако, если я запустил setup.exe, он делает то же самое, но изменения имени в службу включены. Поэтому я предполагаю, что программаinstallinstaller/serviceinstaller включена в файл setup.exe, а не другой.
Наконец, спасибо вам всем за вашу помощь.
Ответы
Ответ 1
Вам нужно добавить класс установщика в ваш проект службы Windows. Затем в своем дизайнере вы добавляете ServiceInstaller и ServiceProcessInstaller, в объектах этих двух классов вы можете указать имя службы, отображаемое имя для службы, пользователя и т.д.
Вы можете увидеть подробное объяснение здесь:
http://utkarshpuranik.wordpress.com/2010/06/07/creating-installing-debugging-windows-services/
Ответ 2
Возможно, вы добавили установщика, щелкнув правой кнопкой мыши дизайн вашего класса службы Windows. Если вы это сделали, вы найдете класс ProjectInstaller в своем проекте WindowsService.
Выбрав этот класс ProjectInstaller, вы увидите два установщика в своем дизайнерском представлении → 1.ServiceInstaller1
2.ServiceProcessInstaller1
Щелкните правой кнопкой мыши ServiceInstaller1 и выберите свойства. В окне свойств измените имя службы на имя, которое вы хотите, чтобы предоставить свою услугу.
Надеюсь, что это сработает...
Ответ 3
В Visual Studio 2010 вы можете дважды щелкнуть запись для файла службы в обозревателе решений (с именем "AService" в вашем случае). В окне свойств просто измените запись в "ServiceName".
Ответ 4
Это зависит от способа его установки.
- Если вы используете SC.EXE, просто измените параметр отображаемого имени
- Если вы используете ServiceInstaller Class, измените его DisplayName
Ответ 5
в VS2012 и 2015, если вы хотите изменить его в конструкторе VS, дважды щелкните файл своего класса, например. MyCustomService.cs, а затем в режиме проектирования щелкните правой кнопкой мыши и выберите "Свойства".
![введите описание изображения здесь]()
который дает вам возможность визуально изменить имя службы.
![введите описание изображения здесь]()