Je souhaite installer un service Windows à l'aide d'une invite de commande Windows (et non de l'invite de commande Visual Studio).
Comment puis-je faire cela?
Accédez au fichier installutil.exe de votre dossier .net (pour .net 4, par exemple, C:\Windows\Microsoft.NET\Framework\v4.0.30319) et utilisez-le pour installer votre service, comme ceci:
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"
Aucun problème avec la commande SC Create . Il vous suffit de connaître les arguments corrects:
SC CREATE "MySVC" binpath= “D:\Me\Services\MySVC\MySVC.exe"
Si le nom du répertoire comporte un espace tel que c:\program files\abc 123
, vous devez utiliser des guillemets doubles autour du chemin.
installutil.exe "c:\program files\abc 123\myservice.exe"
Cela facilite beaucoup les choses si vous configurez un fichier chauve-souris comme suit:
par exemple. Pour installer un service, créez un fichier "myserviceinstaller.bat" et " Exécuter en tant qu'administrateur "
@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
désinstaller le service,
Ajoutez simplement un -u à la commande 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"
Effectuer ce qui suit:
c:\windows\Microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
Il est important d'ouvrir avec des droits d'administrateur, sinon vous risquez de rencontrer des erreurs qui n'ont pas de sens. Si vous en avez, vérifiez que vous l'avez ouvert en premier avec les droits d'administrateur!
Pour ouvrir avec des droits d'administrateur , cliquez avec le bouton droit de la souris sur 'Invite de commandes' et sélectionnez 'Exécuter en tant qu'administrateur'.
Install Service: -
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe"
"C:\Services\myservice.exe"
UnInstall Sevice: -
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" -u "C:\Services\myservice.Service.exe"
Je dois ajouter un point de plus dans ce fil. Pour installer/désinstaller la version 64 bits des assemblys, vous devez utiliser la version 64 bits de l'outil. Pour installer un service, la commande doit être:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe"
"C:\YourFolder\YourService.exe"
et pour désinstaller la commande devrait être:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u
"C:\YourFolder\YourService.exe"
Si vous utilisez Powershell et que vous souhaitez installer le service .NET, vous pouvez utiliser Install-Service module. C'est un wrapper pour l'outil InstalUtil.
Il expose 3 commandes
Le code de ce module peut être visualisé ici
Créez un fichier *.bat
à côté de votre service Windows fichier exe
pour l'installation avec le contexte suivant:
CLS
ECHO Installing My Windows Service
START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe"
Créez un fichier *.bat
à côté de votre service Windows fichier exe
pour la désinstallation avec le contexte suivant:
CLS
ECHO Uninstalling My Windows Service
START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe"
Exécutez chaque fichier bat
en tant qu’administrateur pour installer ou désinstaller votre service Windows.
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\
pour aller au dossierinstallutil C:\ProjectFolder\bin\Debug\MyProject.exe
Remarque: Pour désinstaller: installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe
Suivez les étapes lors du déploiement du service Windows, ne perdez pas de temps
1- Exécuter l'invite de commande par le droit administrateur
2- S'assurer du mode release lors de la compilation dans votre IDE
3- Donnez un type à votre installateur de projet en mode conception
4- Sélectionnez le type d’authentification selon le cas
5- S'assurer des dépendances logicielles: Si vous utilisez un certificat, installez-le correctement
6- Allez votre console écrivez ceci:
C:\Windows\Microsoft.NET\Framework\yourRecentVersion\installutil.exe c:\yourservice.exe
il y a un argument -i caché avant le chemin exe -i c:\
vous pouvez utiliser -u
pour la désinstallation
7- Regardez votre chemin d'accès .exe pour sembler fichier journal. Vous pouvez utiliser l'observateur d'événements pour observer dans la fonctionnalité
le code suivant, installez et désinstallez le service,
Ouvrez le invite de commande et exécutez le programme en tant qu'administrateur, lancez la commande ci-dessous et appuyez sur Entrée.
Syntaxe
À installer
C:\windows\Microsoft.net\framework\v4.0.30319>InstallUtil.exe + Your copied path + \your service name + .exe
par exemple: notre chemin InstallUtil.exe C:\MyFirstService\bin\Debug\MyFirstService.exe
Pour désinstaller
C:\windows\Microsoft.net\framework\v4.0.30319>InstallUtil.exe -u + Your copied path + \your service name + .exe
par exemple: notre chemin InstallUtil.exe -u C:\MyFirstService\bin\Debug\MyFirstService.exe
pour plus d'aide, vous pouvez voir le lien suivant: exemple de programme
lorsque votre version d’Assembly et votre projet Visual studio définissant Biuld sur Dot Net 2 ou 4 s’installent avec la même version.
installer le service avec installutil
cette même version
si construit en dot net 4
Tapez c:\windows\Microsoft.net\framework\v4.0.30319\installutil.exe
si construit en dot net 2
Tapez c:\windows\Microsoft.net\framework\v2.0.11319\installutil.exe
Ouvrez Visual studio et sélectionnez un nouveau projet en sélectionnant Windows Service
template dans l'onglet Windows Desktop
. Ensuite, copiez le code suivant dans votre fichier 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." });
}
}
}
Cliquez avec le bouton droit sur le fichier service_name.cs et ouvrez le concepteur de service. que de faire un clic droit et sélectionnez Add Installer
. Cliquez avec le bouton droit sur serviceProcessInstaller1
et modifiez sa valeur de propriété de Account
de User
à Local System
.
Supprimez la méthode static void main
du fichier Program.cs
. Ensuite, enregistrez et construisez votre projet.
NOTE: goto bin\Ddebug
du dossier de votre projet. Puis ouvrez Propriétés de votre fichier service_name.exe
. Than goto Compatibility
tab. Puis cliquez sur Change Settings For All Users
.
Sélectionnez l'option Run this program as an administrator
.
Maintenant, vous devez ouvrir CommandPromt en tant qu’administrateur . Après l’ouverture, définissez le répertoire dans lequel votre fichier InstallUtil.exe
est placé . Pour ex: C:\Windows\Microsoft.NET\Framework64\v4.0.30319
. Écrivez maintenant la commande suivante:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe -i C:\TimerService\TimerService\bin\Debug\TimerService.exe
Remarque: -i est pour installer le service et -u pour Unsinstall.
after -i définit l'écriture du chemin où vous voulez installer votre service.
écrivez maintenant la commande dans CommandPromt comme suit:
C:\TimerService\TimerService\bin\Debug>net start service_name
Remarque: utilisez stop
pour arrêter le service.
Maintenant, ouvrez ViewEventLog.exe
. Sélectionnez Journaux Windows> Application. Là, vous pouvez consulter le journal de votre service en démarrant et en arrêtant le service.