2009-08-31 17 views
6

Ho un semplice servizio Windows sviluppato in VS.net 2008 e VB.net. Quando installo il servizio utilizzando Installutil.exe dal prompt dei comandi, funziona come un incantesimo.Servizio Windows non visualizzato quando installato con il progetto di installazione

Quando si tenta di aggiungere un progetto di installazione e di impostare l'output e di compilarlo e installarlo sebbene sia installato correttamente, non viene visualizzato nei servizi.

Il registro eventi indica che è stato installato correttamente. Ho appena controllato il registro, ha posizionato gli assembly in HKEY_CURRENT_USER \ Software \ Microsoft \ installer \ assemblies.

Ma non capisco perché non compare nell'elenco dei servizi. Ho aggiornato e riavviato.

Qualche idea ??

Grazie

risposta

1

Un paio di idee:

Si sta installando nelle stesse account Windows che si sta tentando di eseguire sotto? La proprietà "InstallAllUsers" del progetto di installazione è impostata su True?

Sei sicuro di avere le proprietà ProductName e Title nel Setup Project impostato correttamente? Forse il servizio viene visualizzato nell'elenco sotto un nome diverso, ad esempio "SetupProject1" o qualcosa del genere.

Analogamente, nella classe ProjectInstaller del servizio, in visualizzazione struttura, esaminare le proprietà di ServiceInstaller e accertarsi che le proprietà ServiceName e DisplayName siano impostate su ciò che si desidera.

+0

Grazie. Ho fatto controllare InstallAllUsers su true e productname e title sono corretti. Anche nel serviceinstaller è corretto. Ho persino riavviato la mia macchina. Eventlog mostra il servizio installato con successo. –

+1

Questo passaggio non mi ha davvero aiutato a risolvere il problema, la soluzione indicata dal seguente rowmark era il passaggio mancante nel mio caso – Sanket

11

Soluzione trovata È necessario aggiungere un'azione personalizzata nel progetto MSI. Quindi, nelle azioni personalizzate, aggiungi l'output del tuo servizio alla sezione Installa. Questo eseguirà quindi il codice di installazione richiesto per il tuo servizio. vale a dire lo stesso di quello che l'installutil.exe fa

Grazie per tutto l'aiuto

+1

Non dimenticare di fare la stessa cosa nella sezione "disinstallazione", altrimenti la disinstallazione del software lascerà un "fantasma" "servizio lì. – andrecarlucci

+0

Ho fatto anche questo. Il software viene copiato nei posti giusti, ma il servizio non viene visualizzato nell'elenco. –

+0

Ho saltato il passaggio in cui si crea un programma di installazione per il servizio all'interno del progetto di servizio stesso. http://msdn.microsoft.com/en-us/library/zt39148a(v=VS.100).aspx –

6

Ho avuto lo stesso problema e non prestare attenzione alla parte prima di creare il progetto di installazione. http://msdn.microsoft.com/en-us/library/zt39148a(v=VS.100).aspx

Per creare i programmi di installazione per il vostro servizio

In Esplora soluzioni, fare clic destro Service1.vb o Service1.cs e selezionare Visualizza finestra di progettazione.

Fare clic sullo sfondo del progettista per selezionare il servizio stesso, invece di uno qualsiasi dei suoi contenuti.

Con il progettista messo a fuoco, fare clic con il pulsante destro del mouse, quindi fare clic su Aggiungi programma di installazione.

Per impostazione predefinita, una classe componente che contiene due programmi di installazione viene aggiunta al progetto. Il componente è denominato ProjectInstaller e i programmi di installazione in esso contenuti sono il programma di installazione per il servizio e il programma di installazione per il processo associato del servizio.

In visualizzazione struttura per ProjectInstaller, fare clic su ServiceInstaller1 o serviceInstaller1.

Nella finestra Proprietà, assicurarsi che la proprietà ServiceName sia impostata su MyNewService.

Impostare la proprietà StartType su Automatico.

Nella finestra di progettazione, fare clic su ServiceProcessInstaller1 (per un progetto Visual Basic) o serviceProcessInstaller1 (per un progetto Visual C#). Impostare la proprietà Account su LocalSystem. Ciò causerà l'installazione del servizio e l'esecuzione su un account di servizio locale.

+0

Questo finalmente l'ho risolto (per ottenere il nome corretto del servizio) ma dovevo anche aggiungere l'azione personalizzata come descritto dal segno di riga, altrimenti non appariva alcun servizio –

+0

Ottima risposta. Risolto anche per me –

Problemi correlati