installutil completes successfully but service is not installed
Asked Answered
S

2

22

I am trying to install a windows service.

running c:\windows\microsoft.net\Framework64\v4.0.30319\InstallUtil.exe c:\foo\MyAssembly.exe

i get a nice message that all phases (install, commit) completed successfully.

(i do not get prompted to enter service credentials)

afterwards i do not see the service in services console. nothing useful in install log.

the solution is built on a 64bit box, and i am trying to install the service on a 64bit machine. however, i do not see 64bit as an option in solution properties. i did manually edit all the csproj files to select "x64" for [platform] nodes..

i can run the service out of visual studio no problem.

installer.cs

[RunInstaller(true)]
public partial class Installer : System.Configuration.Install.Installer
{
    public Installer() {
        InitializeComponent();
    }
}

this is the default installer provided by visual studio.

Sarson answered 11/9, 2012 at 3:43 Comment(4)
I have edited your title. Please see, "Should questions include “tags” in their titles?", where the consensus is "no, they should not". Also, if it's a question of installation, then this likely has nothing to do with WCF, so I removed that tag.Tuition
Sorry! Wrong choice of Words. The installation Script!!Loudhailer
madhairsilence.. is installer.cs what you were asking for ?Sarson
Also worth noting - if you're running via cmd prompt - make sure you are running as administrator. I just ran into this issue.Rockoon
J
30

You need to add some Installer objects to the Installers collection. The example here is what you want for installing a windows service. Something like

[RunInstaller(true)]
public class Installer : System.Configuration.Install.Installer
{
    private ServiceInstaller serviceInstaller;
    private ServiceProcessInstaller processInstaller;

    public Installer()
    {
        // Instantiate installers for process and services.
        processInstaller = new ServiceProcessInstaller();
        serviceInstaller = new ServiceInstaller();

        // The services run under the system account.
        processInstaller.Account = ServiceAccount.LocalSystem;

        // The services are started manually.
        serviceInstaller.StartType = ServiceStartMode.Manual;

        // ServiceName must equal those on ServiceBase derived classes.
        serviceInstaller.ServiceName = "Hello-World Service 1";

        // Add installers to collection. Order is not important.
        Installers.Add(serviceInstaller);
        Installers.Add(processInstaller);
    }
}
Joanajoane answered 11/9, 2012 at 4:9 Comment(0)
F
0

The following SO Question has similar scenarios and answers that may also be relevant to someone coming here from a Google search link.

Install Windows Service created in Visual Studio

Franci answered 22/1, 2017 at 18:12 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.