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

Installutil успешно завершен, но служба не установлена

Я пытаюсь установить службу Windows.

работает c:\windows\microsoft.net\Framework64\v4.0.30319\InstallUtil.exe c:\foo\MyAssembly.exe

Я получаю хорошее сообщение о том, что все этапы (установка, фиксация) успешно завершены.

(я не получаю запрос на ввод учетных данных службы)

после этого я не вижу службу в консоли служб. ничего не полезно в журнале установки.

решение построено на 64-битном поле, и я пытаюсь установить службу на 64-битной машине. однако я не вижу 64bit в качестве опции в свойствах решения. я вручную отредактировал все файлы csproj, чтобы выбрать "x64" для узлов [платформы].

Я могу запустить службу из visual studio без проблем.

installer.cs

[RunInstaller(true)]
public partial class Installer : System.Configuration.Install.Installer
{
    public Installer() {
        InitializeComponent();
    }
}

это установщик по умолчанию, предоставляемый визуальной студией.

4b9b3361

Ответ 1

Вам нужно добавить некоторые объекты Installer в коллекцию Installers. Пример здесь - это то, что вы хотите установить для службы Windows. Что-то вроде

[RunInstaller(true)]
public class Installer : System.Configuration.Install.Installer
{
    private ServiceInstaller serviceInstaller;
    private ServiceProcessInstaller processInstaller;

    public Installer()
    {
        // Instantiate installers for process and services.
        processInstaller = new ServiceProcessInstaller();
        serviceInstaller = new ServiceInstaller();

        // The services run under the system account.
        processInstaller.Account = ServiceAccount.LocalSystem;

        // The services are started manually.
        serviceInstaller.StartType = ServiceStartMode.Manual;

        // ServiceName must equal those on ServiceBase derived classes.
        serviceInstaller.ServiceName = "Hello-World Service 1";

        // Add installers to collection. Order is not important.
        Installers.Add(serviceInstaller);
        Installers.Add(processInstaller);
    }
}