Когда я создаю новый сервис Windows в Visual Studio 2010 с, я получаю сообщение о том, чтобы использовать программы installutil и чистый старт для запуска службы.
Я пробовал следующие шаги:
Выход Шаг 4
выполнение операции установки.
В начале фазы установки установки.
посмотреть содержимое файла журнала C:\Users\myusername\Documents\Visual студия 2010\Projects\TestService\TestService\obj\x86\Debug\TestService.exe собрание'ы прогресса.
этот файл находится в C:\Users\myusername\Documents\Visual студия \проекты\2010 Тес tService\службы testservice\параметр obj\х86\отладки\службы testservice.Installlog по.
установка сборки 'C:\Users\myusername\Documents\Visual студия проекты\2010\тестов поставщик\службы testservice\параметр obj\х86\отладки\службы testservice.ехе'.
затронуты следующие параметры:
logtoconsole =
логфайл = C:\Users\myusername\Documents\Visual студия 2010\проекты\службы testservice\Т estService папке\obj\х86\отладки\службы testservice.Installlog по
путь_сборки = C:\Users\myusername\Documents\Visual студия 2010\проекты\TestServ ice\TestService\obj\x86\Debug\TestService.exe
нет публичных монтажники с атрибутом runinstallerattribute.Атрибут да может быть найден в C:\Users\myusername\Documents\Visual студия 2010\проекты\службы testservice\TestSe rvice\obj\x86\Debug\TestService.exe сборка.
этап установки успешно завершен, и фаза фиксации В начале.
посмотреть содержимое файла журнала C:\Users\myusername\Documents\Visual студия 2010\Projects\TestService\TestService\obj\x86\Debug\TestService.exe собрание'ы прогресса.
этот файл находится в C:\Users\myusername\Documents\Visual студия \проекты\2010 Тес tService\службы testservice\параметр obj\х86\отладки\службы testservice.Installlog по.
> в совершении ассамблеи 'C:\Users\myusername\Documents\Visual студия проекты\2010\тестов поставщик\службы testservice\параметр obj\х86\отладки\службы testservice.ехе'.
затронуты следующие параметры:
logtoconsole =
логфайл = C:\Users\myusername\Documents\Visual студия 2010\проекты\службы testservice\Т estService папке\obj\х86\отладки\службы testservice.Installlog по
путь_сборки = C:\Users\myusername\Documents\Visual студия 2010\проекты\TestServ ice\TestService\obj\x86\Debug\TestService.exe
нет публичных монтажники с атрибутом runinstallerattribute.Атрибут да может быть найден в C:\Users\myusername\Documents\Visual студия 2010\проекты\службы testservice\TestSe rvice\obj\x86\Debug\TestService.exe сборка.
удалить файл InstallState, потому что нет монтажников.
фиксация этап успешно завершен.
осуществляется установка завершена.
Выход Шаг 5
Имя службы является недействительным.
Дополнительная справка доступна, наберите net HELPMSG 2185.
Вам нужно открыть сервис.файл CS в конструкторе, нажмите правую кнопку мыши и выбрать в меню-Вариант "и добавить установщик и".
Он выиграл'т установить прямо из коробки... нужно сначала создать класс установщика.
Ссылка на сервис установки:
Как добавить монтажники с приложением Service
Довольно старый... но это о чем я говорю:
Служб Windows на C#: добавление установщика (часть 3)
При этом, в файле projectinstaller.КС будет автоматически создан. Затем вы можете дважды щелкнуть по нему, введите конструктор и настроить компоненты:
мыши serviceinstaller1
имеет свойства самого обслуживания: описание
, отображаемое имя
, Имя
и starttype значение
являются самым важным.
serviceProcessInstaller1
обладает этим важным свойством: "учетная запись", которая является учетной записью в которой будет запускаться служба.
Например:
this.serviceProcessInstaller1.Account = ServiceAccount.LocalSystem;
Глядя на:
нет публичных монтажники с атрибутом runinstallerattribute.Да атрибут может быть найден в C:\Users\myusername\Documents\Visual студия 2010\проекты\службы testservice\TestSe rvice\obj\x86\Debug\TestService.exe сборка.
Похоже, вы не можете иметь класс установщика в вашем коде. Это класс, который наследует от установки
что сказать программы installutil
как установить программы в качестве сервиса.
П. С. У меня есть своя маленькая самостоятельная установка/шаблон отладочном службы Windows, которые вы можете скопировать код или использовать: отладочном самостоятельной установке служб Windows
Вот альтернативный способ сделать установщик и избавиться от этого сообщения об ошибке. Также кажется, что VS2015 Express не имеют "и добавить установщик и" Пункт меню.
Вам просто нужно создать класс и добавить ниже код и добавить ссылку System.Configuration.Install.dll.
using System.Configuration.Install;
using System.ServiceProcess;
using System.ComponentModel;
namespace SAS
{
[RunInstaller(true)]
public class MyProjectInstaller : Installer
{
private ServiceInstaller serviceInstaller1;
private ServiceProcessInstaller processInstaller;
public MyProjectInstaller()
{
// Instantiate installer for process and service.
processInstaller = new ServiceProcessInstaller();
serviceInstaller1 = new ServiceInstaller();
// The service runs under the system account.
processInstaller.Account = ServiceAccount.LocalSystem;
// The service is started manually.
serviceInstaller1.StartType = ServiceStartMode.Manual;
// ServiceName must equal those on ServiceBase derived classes.
serviceInstaller1.ServiceName = "SAS Service";
// Add installer to collection. Order is not important if more than one service.
Installers.Add(serviceInstaller1);
Installers.Add(processInstaller);
}
}
}
Две типичные проблемы:
Другая возможная проблема (которой я столкнулся):
Будьте уверены, что файле projectinstallerкласс
общественности. Честно говоря, я не уверен, как именно я это сделал, но я добавил обработчики событий в
файле projectinstaller.Дизайнер.в CS, как:
этот.serviceProcessInstaller1.BeforeInstall += новая система.Конфигурации.Установить.InstallEventHandler(это.serviceProcessInstaller1_BeforeInstall);
Я думаю, в процессе автоматического создания функции-обработчика в файле projectinstaller.КС` он изменил определение класса от
публичные файле projectinstaller класс : система.Конфигурации.Установить.Установщик`
для
частичный файле projectinstaller класс : система.Конфигурации.Установить.Установщик`
замена Общественного
с сайта частичный
. Итак, для того, чтобы исправить это так и должно быть
общественный разделяемого класса файле projectinstaller : система.Конфигурации.Установить.Установщик`
Я использую Visual Studio 2013 сообщество издание.
Изменение стелс в VS 2010 и .Net 4.0 и более поздних
Отсутствие публичных монтажники с атрибутом runinstallerattribute.Да атрибут может быть найден
Есть изменения псевдонима или очистки компилятора .Net, который может раскрыть этот маленький твик для вашего конкретного случая.
Если у вас есть следующий код ...
RunInstaller(true) // old alias
Вам может потребоваться обновить ее
RunInstallerAttribute(true) // new property spelling
Это как псевдоним изменен под одеялом во время компиляции или во время выполнения, и вы получите эта ошибка. Вышеуказанные явные изменения атрибутом runinstallerattribute(правда) исправил во всех наших сценариях установить на всех машинах.
После добавления проекта или услуги установки проверьте наличие “старых” RunInstaller(true) и замените его новым атрибутом runinstallerattribute(правда)
Еще одна загвоздка я столкнулся: убедитесь, что ваш установщик производного класса (как правило файле projectinstaller
) находится на самом верху иерархии имен, я попытался использовать общественный класс внутри другого класса, но это выливается в те же старые ошибки:
Отсутствие публичных монтажники с атрибутом runinstallerattribute.Да атрибут может быть найден