Подтвердить что ты не робот

Какой лучший способ установить описание службы Windows в .net

Я создал службу С#, используя шаблон VS2005. Он отлично работает, однако описание службы пустое в апплете управления службами Windows.

4b9b3361

Ответ 1

Создайте ServiceInstaller и установите описание

private System.ServiceProcess.ServiceInstaller serviceInstaller = 
  new System.ServiceProcess.ServiceInstaller();
this.serviceInstaller.Description = "Handles Service Stuff";

Ответ 2

Чтобы прояснить, как это сделать, не используя код:

  • Добавьте в свой проект установщика услуг, как описано здесь: http://msdn.microsoft.com/en-us/library/ddhy0byf%28v=vs.80%29.aspx

  • Откройте конструктор (например, ProjectInstaller.cs) в представлении "Дизайн".

  • Один клик по компоненту установщика службы (например, serviceInstaller1) или щелкните его правой кнопкой мыши и выберите "Свойства".

  • На панели "Свойства" установите "Описание" и/или "DisplayName" (это также означает, что вы устанавливаете StartType и т.д.). Описание, вероятно, все, что вы хотите изменить, хотя, если вы хотите дать немного более понятный для человека DisplayName (первый столбец в Менеджере служб) вы также можете сделать это.

  • При желании откройте созданный автоматически файл конструктора (например, ProjectInstaller.Designer.cs), чтобы убедиться, что свойства были установлены правильно.

  • Создайте решение и установите его с помощью installutil.exe или других средств.

Ответ 3

После создания проекта установки службы в VS2010 вам необходимо добавить переопределение метода Install в класс, созданный VS, для создания записи реестра для описания вашего сервиса.

using System;
 using System.Collections;
 using System.ComponentModel;
 using System.Configuration.Install;
 using System.ServiceProcess;
 using Microsoft.Win32;

 namespace SomeService
 {
    [RunInstaller(true)]
    public partial class ProjectInstaller : System.Configuration.Install.Installer
    {
        public ProjectInstaller()
        {
            InitializeComponent();
        }
        /// <summary>
        /// Overriden to get more control over service installation.
        /// </summary>
        /// <param name="stateServer"></param>      
        public override void Install(IDictionary stateServer)
        {
            RegistryKey system;

            //HKEY_LOCAL_MACHINE\Services\CurrentControlSet
            RegistryKey currentControlSet;

            //...\Services
            RegistryKey services;

            //...\<Service Name>
            RegistryKey service;

            // ...\Parameters - this is where you can put service-specific configuration
            // Microsoft.Win32.RegistryKey config;

            try
            {
                //Let the project installer do its job
                base.Install(stateServer);

                //Open the HKEY_LOCAL_MACHINE\SYSTEM key
                system = Registry.LocalMachine.OpenSubKey("System");
                //Open CurrentControlSet
                currentControlSet = system.OpenSubKey("CurrentControlSet");
                //Go to the services key
                services = currentControlSet.OpenSubKey("Services");

                //Open the key for your service, and allow writing
                service = services.OpenSubKey("MyService", true);
                //Add your service description as a REG_SZ value named "Description"
                service.SetValue("Description", "A service that does so and so");
                //(Optional) Add some custom information your service will use...
                // config = service.CreateSubKey("Parameters");
            }
            catch (Exception e)
            {

                throw new Exception(e.Message + "\n" + e.StackTrace);
            }
        }
    }
 }

http://msdn.microsoft.com/en-us/library/microsoft.win32.registrykey.aspx

http://www.codeproject.com/KB/dotnet/dotnetscmdescription.aspx

Ответ 4

Также вы можете создать ServiceInstaller, а в окне свойств установщика Service вы увидите свойство Description, которое вы можете установить. Если вы не хотите его кодировать.

Ответ 5

Вы также можете установить имя и описание службы из среды IDE, щелкнув правой кнопкой мыши значок "serviceInstaller" в представлении проекта класса ProjectInstaller.

Настройка службы Описание из IDE