필요 installutil.exe
하지 않으며 재배포 할 권한도 없을 것입니다.
내 응용 프로그램에서 수행하는 방법은 다음과 같습니다.
using System;
using System.Collections.Generic;
using System.Configuration.Install;
using System.IO;
using System.Linq;
using System.Reflection;
using System.ServiceProcess;
using System.Text;
static void Main(string[] args)
{
if (System.Environment.UserInteractive)
{
string parameter = string.Concat(args);
switch (parameter)
{
case "--install":
ManagedInstallerClass.InstallHelper(new string[] { Assembly.GetExecutingAssembly().Location });
break;
case "--uninstall":
ManagedInstallerClass.InstallHelper(new string[] { "/u", Assembly.GetExecutingAssembly().Location });
break;
}
}
else
{
ServiceBase.Run(new WindowsService());
}
}
기본적으로 ManagedInstallerClass
내 예제와 같이 사용하여 서비스를 자체적으로 설치 / 제거 할 수 있습니다 .
그런 다음 다음과 같이 InnoSetup 스크립트에 추가하면됩니다.
[Run]
Filename: "{app}\MYSERVICE.EXE"; Parameters: "--install"
[UninstallRun]
Filename: "{app}\MYSERVICE.EXE"; Parameters: "--uninstall"