Ho creato un servizio Windows in vb.net. Esiste comunque la possibilità di creare un'installazione che non richieda l'installazione diutile?Come installare un servizio Windows .NET senza InstallUtil.exe vb.net
risposta
L'installazione è necessaria, ma per semplificare le cose, è possibile creare un progetto di installazione, in modo da eseguire semplicemente un .msi per installare il servizio. (Questo utilizza installutil sotto il cofano, ma semplifica notevolmente l'installazione.)
Una procedura dettagliata è qui: http://support.microsoft.com/kb/816169
E un'altra è qui: http://msdn.microsoft.com/en-us/library/zt39148a(VS.80).aspx
La differenza principale tra i due è la quantità di codice nei campioni. Entrambi ti accompagnano attraverso lo stesso processo.
Gli articoli collegati sono vecchi ma si applicano ancora in VS2010. Ho utilizzato il secondo articolo per illustrare il processo per un servizio VS2010 la scorsa settimana.
Perché vuoi evitare installutils?
Si potrebbe provare a utilizzare il comando sc
, come in sc create ...
EDIT: Ecco una pagina di MSDN per esso: http://support.microsoft.com/?kbid=251192
DESCRIPTION:
Creates a service entry in the registry and Service Database.
USAGE:
sc <server> create [service name] [binPath= ] <option1> <option2>...
OPTIONS:
NOTE: The option name includes the equal sign.
A space is required between the equal sign and the value.
type= <own|share|interact|kernel|filesys|rec>
(default = own)
start= <boot|system|auto|demand|disabled|delayed-auto>
(default = demand)
error= <normal|severe|critical|ignore>
(default = normal)
binPath= <BinaryPathName>
group= <LoadOrderGroup>
tag= <yes|no>
depend= <Dependencies(separated by/(forward slash))>
obj= <AccountName|ObjectName>
(default = LocalSystem)
DisplayName= <display name>
password= <password>
Questo è buono. Me ne ero dimenticato. L'ho usato al mio primo servizio prima di scoprire come denunciare i file MSI. Questo ti permette di fare cose che non puoi fare con InstallUtil come impostare il nome utente e la password di default per il servizio da eseguire. +1. – David
presta particolare attenzione al [binPath =] deve esserci uno spazio tra il = e l'inizio del tuo percorso. Questo mi ha fatto numerose volte. – AndyM
È sempre possibile farlo con le voci di registro.
Le chiavi si trovano in HKLM\SYSTEM\CurrentControlSet\services
Il nome della chiave creato è il nome incorporato del servizio sul gestore del servizio. I seguenti valori sono rilevanti:
DisplayName
= testo che viene visualizzato nel gestore dei servizi
ImagePath
= FQ Nome del servizio eseguibile
Start
(DWORD) = tipo di avvio (3 = autostart)
DelayedAutoStart
(DWORD) = (1 = ritardato)
WOW64
(DWORD) = (0 = 64 bit app, 1 = 32 bit app)
ErrorControl
(DWORD) = 0
ObjectName
= {username} a correre sotto (LocalSystem per conto del sistema)
Ci sono un sacco di altri valori, ma che dovrebbe iniziare.
- 1. Batch Script per installare o disinstallare un servizio Windows .NET
- 2. Strano problema con un servizio Windows .NET
- 3. Come installare un servizio Windows usando Qt?
- 4. servizio di Windows Installare finisce in Rollback
- 5. Come installare un servizio Windows C# su un server remoto?
- 6. Come installare Python per .NET su Windows
- 7. Linux Mono Equivalente di .NET Servizio Windows
- 8. Come installare un servizio Windows con Inno Setup?
- 9. Come installare un servizio Windows creato in VC++ 6.0
- 10. Servizio distribuzione Windows
- 11. Come arrestare correttamente un servizio Windows .NET con più thread?
- 12. Come creare un'interfaccia web per un servizio Windows in .Net?
- 13. Come installare .NET 4 Framework in Windows 10
- 14. Impossibile installare il servizio Windows con l'aiuto dello strumento InstallUtil
- 15. Come chiamare un servizio Web senza wsdl in .net
- 16. Chiamata Shell32.dll dal servizio Windows .NET
- 17. Come ricaricare il modulo di Windows senza chiuderlo tramite VB.NET?
- 18. Avvia automaticamente un servizio Windows all'installazione
- 19. come installare più istanze dello stesso servizio Windows
- 20. Impossibile installare memcached 1.4.5 come servizio su Windows
- 21. avvio di un processo da un servizio Windows .NET
- 22. Servizio Windows senza interferenze di Visual Studio
- 23. Stampa da un servizio .NET
- 24. Come posso installare una stampante usando .NET?
- 25. Eseguire un'applicazione .net senza installare il profilo client .net?
- 26. InstallUtil mancante su .Net
- 27. c2WTS (Servizio token Windows) in .net 4.5
- 28. Avvia un servizio Windows disabilitato?
- 29. Come eseguire l'applicazione Windows C# da USB senza installare .NET framework sul sistema client
- 30. Come posso installare un servizio Windows su una macchina su cui non è installato Visual Studio?
Grazie per la procedura dettagliata. Ho anche usato il secondo articolo con grande successo. Tuttavia all'interno del mio servizio ho una variabile chiamata filepath, che determina il percorso di uscita dei file creati dal mio servizio. C'è comunque che posso convincere l'utente a digitare la posizione che desidera? – Simon
o dovrei cercare di sintall via un file .bat fle? – Simon
È possibile farlo se i valori si trovano nel file .config. C'è un tutorial qui che mostra come modificare i valori di app.config in uno scenario di installazione del progetto di installazione. Non l'ho usato, ma sembra spromising. http://raquila.com/software/configure-app-config-application-settings-during-msi-install/ – David