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

Не удалось установить службу Windows с помощью инструмента InstallUtil

Я использую VS 2012, и поскольку проекты установки были удалены из него, я должен использовать InstallUtil.exe.

У меня нет класса projectInstaller в приложении для Windows. Я запустил в командной строке:

installutil FilesMonitoringService.exe 

Я получаю:

C:\Program Files\Microsoft Visual Studio 8\VС# > installutil "C:\Program Files\Mic rosoft Visual Studio 8\VС#\CSharpProjects\MyService\MyService\bin\Release\MyServ ICE.EXE" Утилита для установки Microsoft Framework (.NET Framework) версии 2.0.50727.42 Copyright (c) Корпорация Microsoft. Все права защищены.

Запуск транзакционной установки.

Начало этапа установки. См. Содержимое файла журнала для C:\Program Files\Microsoft Visual Studi. o 8\VС#\CSharpProjects\MyService\MyService\bin\Release\MyService.exe сборка прогресс. Файл находится в папке C:\Program Files\Microsoft Visual Studio 8\VС#\CSharpProj ЕКТС \MyService\MyService\Bin\Release\MyService.InstallLog. Установка сборки 'C:\Program Files\Microsoft Visual Studio 8\VС#\CSharpProjec ц \MyService\MyService\Bin\Release\MyService.exe. Затронутыми параметрами являются:    logtoconsole =    assemblypath = C:\Program Files\Microsoft Visual Studio 8\VС#\CSharpProjects \ MyService\MyService\Bin\Release\MyService.exe    logfile = C:\Program Files\Microsoft Visual Studio 8\VС#\CSharpProjects\MySer вице \MyService\Bin\Release\MyService.InstallLog Нет публичных установщиков с атрибутом RunInstallerAttribute.Yes.  в C:\Program Files\Microsoft Visual Studio 8\VС#\CSharpProjects\MyService \ MyService\bin\Release\MyService.exe.

Фаза установки успешно завершена, и начинается фаза фиксации. См. Содержимое файла журнала для C:\Program Files\Microsoft Visual Studi. o 8\VС#\CSharpProjects\MyService\MyService\bin\Release\MyService.exe сборка прогресс. Файл находится в папке C:\Program Files\Microsoft Visual Studio 8\VС#\CSharpProj ЕКТС \MyService\MyService\Bin\Release\MyService.InstallLog. Committing assembly 'C:\Program Files\Microsoft Visual Studio 8\VС#\CSharpProjec ц \MyService\MyService\Bin\Release\MyService.exe. Затронутыми параметрами являются:    logtoconsole =    assemblypath = C:\Program Files\Microsoft Visual Studio 8\VС#\CSharpProjects \ MyService\MyService\Bin\Release\MyService.exe    logfile = C:\Program Files\Microsoft Visual Studio 8\VС#\CSharpProjects\MySer вице \MyService\Bin\Release\MyService.InstallLog Нет публичных установщиков с атрибутом RunInstallerAttribute.Yes.  в C:\Program Files\Microsoft Visual Studio 8\VС#\CSharpProjects\MyService \ MyService\bin\Release\MyService.exe. Удалите файл InstallState, потому что нет инсталляторов.

Успешная фаза завершена.

Завершенная транзакция завершена.

C:\Program Files\Microsoft Visual Studio 8\VС# >

ОК, похоже, что все установлено. Но! Когда я перехожу к диспетчеру задач на страницу "Службы", я не могу найти свою услугу.

В чем может быть причина?

Спасибо заранее!

Редактирование: Я указал, что у меня нет класса projectInstaller, потому что, если я его добавлю (в конструкторе → добавить установщик) и запустим команду installutil, я получаю: (приблизительный перевод)

Установка файловMonitoringService... Создание файлов EventLogMonitoringService в журнале jornal Application...

На этом этапе установки произошло исключение.

System.Security.SecurityException: источник не найден, но не удалось найти ни один, ни все лог-журналы. Недоступно jornals: Безопасность.

Начинается стадия отдачи.

//много текста

Стадия отдачи выполнена

Выполняется операция установки. Не удалось выполнить настройку, и была выполнена отдача.

Итак, если я добавлю projectInstller в мою службу Windows, это определенно не сможет установить с помощью installUtil.
Вот сгенерированный код:

[RunInstaller(true)]
public partial class ProjectInstaller : Installer
{
    public ProjectInstaller()
    {
        InitializeComponent();
    }
    private void serviceInstaller1_AfterInstall(object sender, InstallEventArgs e)
    {}
    private void serviceProcessInstaller1_AfterInstall(object sender, InstallEventArgs e)
    {}
}

Mabby Мне нужно ввести код в метод afterInstall? Я также установил это свойство в окне properties:

serviceInstaller1: ServiceName → FileMonitoringService, StartType → Автоматический
serviceProcessInstaller1: Учетная запись → Локальная система

Или он может быть реализован без projectInstaller?

4b9b3361

Ответ 1

Хорошо, есть несколько вещей:

1) Вам нужен projectInstaller.
2) YourProject → свойства; Запуск проекта → YourProject.Program
3) построить
4) "Запуск от имени администратора" в командной строке!

Теперь все работает.

полная ссылка на учебник

Ответ 2

У меня нет копии VS2012, чтобы проверить ее сейчас, но я считаю, что ваша проблема имеет какое-то отношение к

У меня нет класса projectInstaller в моем приложении для Windows

часть.

Из msdn:

Компоненты установки регистрируют отдельную услугу в системе к которому он устанавливается, и позволить диспетчеру управления службами знаете, что существует служба

Ответ 3

Это кажется тривиальным, но тщательно проверяйте, когда вы пишете аргументы installutill, потому что вы можете смутить exe файл службы другим exe файлом, созданным компиляцией проекта, на который ссылается (у которого нет сервис-инсталляторов) и сделать это потерпеть неудачу.