2012-09-11 18 views
18

Estoy tratando de instalar un servicio de Windows.installutil se completa con éxito pero el servicio no está instalado

ejecutar C: \ Windows \ microsoft.net \ Framework64 \ v4.0.30319 \ InstallUtil.exe c: \ foo \ MyAssembly.exe

me sale un mensaje de que todas las fases (instalación, se comprometen) completado con éxito .

(yo no consigo incitado a introducir las credenciales de servicio)

después no veo el servicio en la consola de servicios. nada útil en el registro de instalación.

la solución está construida en una caja de 64 bits, y estoy tratando de instalar el servicio en una máquina de 64 bits. sin embargo, no veo 64 bits como una opción en las propiedades de la solución. Edité manualmente todos los archivos csproj para seleccionar "x64" para nodos [plataforma].

puedo ejecutar el servicio fuera del estudio visual sin problema.

Installer.cs

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

este es el instalador por defecto proporcionada por el estudio visual.

+0

He editado su título. Por favor, consulte: "[¿Las preguntas deberían incluir" etiquetas "en sus títulos?] (Http://meta.stackexchange.com/questions/19190/)", donde el consenso es "no, no deberían". Además, si se trata de una instalación, probablemente esto no tiene nada que ver con WCF, así que eliminé esa etiqueta. –

+0

¡Lo siento! Mala elección de palabras La instalación Script !! – madhairsilence

+0

madhairsilence .. es installer.cs lo que estabas pidiendo? –

Respuesta

24

Debe agregar algunos objetos de Installer a la colección Installers. El ejemplo here es lo que desea para instalar un servicio de Windows. Algo como

[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); 
    } 
} 
Cuestiones relacionadas