2010-04-08 14 views

risposta

41

lo si può fare con installUtil che risiede nella cartella .net framework (sulla mia macchina è C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727).

+4

Per il mio servizio .Net 4.5 ho dovuto utilizzare InstallUtil.exe in C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319. Quando ho provato a utilizzare quello nella directory v2.0.50727 ho ricevuto un errore che diceva "L'assembly è stato creato da un runtime più recente rispetto al runtime attualmente caricato e non può essere caricato." – deadlydog

+0

@deadlydog La domanda originaria riguardava .Net versione 2, ma è corretto che sia necessario utilizzare la versione di installUtil che corrisponde alla versione del framework per cui è stato creato il servizio. –

+0

@giorgi Dipende da quale framework .Net si imposta il proprio target. Se il tuo progetto ha come obiettivo .Net 4.0, ma sul server è installato .Net 3.5, non potrai utilizzare installUtil per questo, e anche se potresti installarlo, non verrebbe eseguito. Il server deve avere almeno la versione .Net (o successiva) che il tuo progetto sia impostato come target. – deadlydog

1

Immagino che stiate cercando il programma "installutil.exe", che si usa per installare .NET Windows Services. Lo si può trovare in% windir% \ Microsoft.NET Framework \ v2.0.50727

2

Aprire un prompt dei comandi (cmd) \ e digitare

aiuto sc

e

sc creano

In additon l'installutil.exe sei pro parlare discutibilmente è in realtà solo nella directory .Net Framework. Il prompt dei comandi di VS imposta semplicemente un percorso carino, ma puoi avviarlo da (percorso mio) C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 bene.

2

Non è necessario il prompt dei comandi di Visual Studio 2008. È necessario il programma InstallUtil.exe che può essere trovato in

C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727

Su macchine x64 c'è anche una versione a 64 bit in

C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727

Questi directorie s sono ovviamente disponibili solo quando .NET è installato.

2

Tutto ciò che sta facendo è mettere gli strumenti del framework .Net sul PERCORSO; si può andare ancora usare: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe specificando il percorso completo in un prompt dei comandi normale (ovviamente regolare per la propria architettura quadro/CPU)

1

Con prompt dei comandi di Visual Studio:

installutil /i fullfilepathtoservice.exe 

Senza prompt dei comandi di Visual Studio :

C:\WINNT\Microsoft.NET\Framework\v1.1.4322 installutil /i fullfilepathtoservice.exe 

HTH.

3

Sì, installutil.exe funziona bene, ma mi sono stancato di dover ricordare di avviare il prompt dei comandi di Visual Studio 2008 per poterlo utilizzare. Invariabilmente, aprivo una normale console solo per rendermi conto che la posizione installutil.exe non faceva parte del percorso.

Fortunatamente, lo installutil.exe è un wrapper attorno a una serie di chiamate di riflessione. Da MSDN,

Installutil.exe utilizza la reflection per ispezionare il montaggio e specificato trovano tutti i tipi Installer con il RunInstallerAttribute impostato su true. Lo strumento esegue quindi il metodo Installa o il metodo di disinstallazione su ciascuna istanza del tipo Installer.

Ciò significa che è possibile aggiungere codice al servizio di Windows per installarlo e disinstallarlo. Così facendo, non ho più bisogno di installutil.exe o del prompt dei comandi di Visual Studio 2008 per eseguirlo.

Ho fornito una guida dettagliata su come eseguire questa operazione here. L'opzione -install installa il servizio Windows e lo avvia. Al contrario, l'opzione -uninstall arresta il servizio e lo disinstalla.

7

È possibile installare i servizi di Windows come MSI. Crea l'MSI come un normale progetto collegato al tuo progetto di servizio.

Nel progetto servizio Creare una classe installatore e aggiungere il servizio componentiInstaller e serviceProcessInstaller e configurare come richiesto. Aggiungere l'output del progetto dal progetto di servizio al progetto MSI, impostare le azioni personalizzate del progetto MSI per l'installazione, il commit, il rollback e la disinstallazione sull'output del progetto di servizio.

Modificare il progetto MSI in qualsiasi altro modo desiderato, creare l'MSI, quindi sarà possibile installare il servizio su qualsiasi macchina Windows senza VS.NET o utilizzando l'applicazione di utilità InstallUtil. L'MSI gestirà anche la disinstallazione, ecc.

Ci sono delle proprietà del componente serviceProcessInstaller che è possibile impostare per l'account per eseguire il servizio in, il serviceInstaller contiene proprietà che possono essere impostate come il nome del servizio. Dovrai impostare ServiceName e Parent, MSDN fornirà buone informazioni su come utilizzare entrambi questi componenti.

Spero che questo aiuti.

Cheers.

+0

"Imposta" le azioni personalizzate? – doug65536

Problemi correlati