Voglio installare un servizio di Windows utilizzando un prompt dei comandi di Windows (non il prompt dei comandi di Visual Studio).
Come faccio a fare questo?
Passare a installutil.exe nella cartella .net (per .net 4 è C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 per esempio) e utilizzarlo per installare il servizio, come questo:
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"
Se il nome della directory ha uno spazio come c:\program files\abc 123
, è necessario utilizzare le doppie virgolette sul percorso.
installutil.exe "c:\program files\abc 123\myservice.exe"
Rende le cose molto più semplici se si imposta un file bat come segue,
Ad esempio, per installare un servizio, creare un “myserviceinstaller.bat” e ” Esegui come amministratore ”
@echo off cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 installutil.exe "C:\Services\myservice.exe" if ERRORLEVEL 1 goto error exit :error echo There was a problem pause
per disinstallare il servizio,
Basta aggiungere un -u al comando installutil.
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "C:\Services\myservice.exe"
Niente di male con il comando SC Create. Solo tu hai bisogno di conoscere gli argomenti corretti:
SC CREATE "MySVC" binpath= “D:\Me\Services\MySVC\MySVC.exe"
Effettuare quanto segue:
c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
È importante aprire con i diritti di amministratore altrimenti potresti trovare errori che non hanno senso. Se ne hai, controlla di averlo aperto prima con i diritti di amministratore!
Per aprire con i diritti di amministratore , fare clic con il tasto destro del mouse su “Prompt dei comandi” e selezionare “Esegui come amministratore”.
Devo aggiungere un altro punto in questa discussione. Per installare / disinstallare la versione a 64 bit degli assiemi, è necessario utilizzare la versione di strumento a 64 bit. Per installare un servizio, il comando dovrebbe essere:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" "C:\YourFolder\YourService.exe"
e per disinstallare il comando dovrebbe essere:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u "C:\YourFolder\YourService.exe"
Se si utilizza Powershell e si desidera installare il servizio .NET, è ansible utilizzare il modulo Install-Service . È un wrapper per lo strumento InstalUtil.
Espone 3 comandi
Codice a questo modulo può essere visto qui
Creare un file *.bat
accanto al file exe
servizio Windows per l’installazione con il seguente contesto:
CLS ECHO Installing My Windows Service START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe"
Creare un file *.bat
accanto al file exe
servizio Windows per la disinstallazione con il seguente contesto:
CLS ECHO Uninstalling My Windows Service START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe"
Esegui ogni file bat
come amministratore per installare o disinstallare il tuo servizio Windows.
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\
per andare alla cartella installutil C:\ProjectFolder\bin\Debug\MyProject.exe
Nota: per disinstallare: installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe
Servizio di installazione: –
“C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ InstallUtil.exe” “C: \ Services \ myservice.exe”
UnInsatall Sevice: –
“C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ InstallUtil.exe” -u “C: \ Services \ myservice.Service.exe”
quando la tua versione assembly e il tuo progetto Visual Studio Biuld impostano su dot net 2 o 4 installano con la stessa versione.
installare il servizio con installutil la stessa versione
se costruito in dot net 4
Digitare c: \ windows \ microsoft.net \ framework \ v4.0.30319 \ installutil.exe
se costruito in dot net 2
Digitare c: \ windows \ microsoft.net \ framework \ v2.0.11319 \ installutil.exe
Apri Visual Studio e seleziona un nuovo progetto selezionando il modello Windows Service
Windows Desktop
nella scheda di Windows Desktop
. Copia il seguente codice nel tuo file service_name.cs.
using System.Diagnostics; using System.ServiceProcess; namespace TimerService { public partial class Timer_Service : ServiceBase { public Timer_Service() { InitializeComponent(); } static void Main() { if (System.Diagnostics.Debugger.IsAttached) { Timer_Service service = new Timer_Service(); service.OnStart(null); } else { ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new Timer_Service() }; ServiceBase.Run(ServicesToRun); } } protected override void OnStart(string[] args) { EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service start successfully." }); } protected override void OnStop() { EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service stop successfully." }); } } }
Fare clic con il tasto destro sul file service_name.cs e aprire il designer del servizio. fare clic con il tasto destro del mouse e selezionare Add Installer
. fare clic con il tasto destro del mouse su serviceProcessInstaller1
e modificare il valore della proprietà Account
da User
a Local System
.
Rimuovi il metodo static void main
dal file Program.cs
. Risparmi e costruisci il tuo progetto.
NOTA: goto cartella bin\Ddebug
cartella del progetto. Quindi aprire Proprietà del file service_name.exe
. Che vai alla scheda Compatibility
. Quindi fare clic su Change Settings For All Users
.
Seleziona l’opzione Run this program as an administrator
.
Ora, devi aprire CommandPromt come amministratore. Dopo l’apertura, impostare la directory in cui è posizionato il file InstallUtil.exe
. per esempio: C:\Windows\Microsoft.NET\Framework64\v4.0.30319
. ora scrivi il seguente comando:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe -i C:\TimerService\TimerService\bin\Debug\TimerService.exe
Nota: -i è per l’installazione he service e -u per Unsinstall.
dopo -i imposta il percorso dove vuoi installare il tuo servizio.
ora scrivi il comando in CommandPromt come segue:
C:\TimerService\TimerService\bin\Debug>net start service_name
Nota: utilizzare stop
per interrompere il servizio.
Ora apri ViewEventLog.exe
. Seleziona Registri di Windows> Applicazione. Qui puoi controllare il registro del tuo servizio avviando e interrompendo il servizio.
Dovresti aprire il prompt dei comandi, vai a
C:\windows\microsoft.net\framework\v4.0.30319\InstallUtil.exe -i ".EXE file of window service"