No necesita installutil.exe
y probablemente ni siquiera tiene derecho a redistribuirlo.
Aquí es la forma en que lo estoy haciendo en mi solicitud:
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());
}
}
Básicamente, usted puede tener su servicio para instalar/desinstalar por sí mismo mediante el uso de ManagedInstallerClass
como se muestra en mi ejemplo.
Entonces es sólo cuestión de añadir en su InnoSetup guión algo como esto:
[Run]
Filename: "{app}\MYSERVICE.EXE"; Parameters: "--install"
[UninstallRun]
Filename: "{app}\MYSERVICE.EXE"; Parameters: "--uninstall"
Creo que necesita usar la sección [Ejecutar]. Ver [aquí] (http://www.vincenzo.net/isxkb/index.php?title = Inno_Setup_Help _-_ 'Run'_and_'UninstallRun'_sections) –