How to resolve “‘installutil’ is not recognized as an internal or external command, operable program or batch file.”?

This is a tiny bit off-topic but I’ve stopped using InstallUtil to install my services. It’s is really easy to just add it to the service itself. Add a reference to System.Configuration.Install (not available in the Client Profile editions if I remember right) and then update your Main()-function in Program.cs like this.

static void Main(string[] args) {
    if (Environment.UserInteractive) {
        var parameter = string.Concat(args);
        switch (parameter) {
            case "--install":
                ManagedInstallerClass.InstallHelper(new[] { Assembly.GetExecutingAssembly().Location });
                break;
            case "--uninstall":
                ManagedInstallerClass.InstallHelper(new[] { "/u", Assembly.GetExecutingAssembly().Location });
                break;
        }
    } else {
        ServiceBase[] servicesToRun = { 
            new Service1() 
        };
        ServiceBase.Run(servicesToRun);
    }
}

Then you can just call WindowsService1.exe with the --install argument and it will install the service and you can forget about InstallUtil.exe.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)