Comment résoudre "'installutil' n'est pas reconnu comme une commande interne ou externe, un programme opérationnel ou un fichier batch."?
Juste essayé d'exécuter une application via ce qui suit:
, j'ai parcouru le répertoire avec une application WindowsService1.exe
, puis essayé la commande Installutil WindowsService1.exe
, mais n'ai obtenu l'erreur suivante...
Comme VS n'a été installé que pour un jour ou deux, je crains que quelque chose ne cloche avec cette installation car elle devrait reconnaître installutil.
Y a-t-il des diagnostics de base que je peux effectuer pour m'assurer que L'invite de commande VS trouve tous les programmes qu'il le devrait ?
Modifier
Si j'exécute PATH
dans l'invite de commande, je vois ce qui suit:
8 réponses
C'est un tout petit peu hors sujet mais j'ai cessé D'utiliser InstallUtil pour installer mes services. Il est vraiment facile de l'ajouter au service lui-même. Ajoutez une référence à System.Configuration.Install
(non disponible dans les éditions du profil Client si je me souviens bien), puis mettez à jour votre fonction Main () dans le programme.cs comme ça.
static void Main(string[] args)
{
if (Environment.UserInteractive)
{
string parameter = string.Concat(args);
switch (parameter)
{
case "--install":
ManagedInstallerClass.InstallHelper(new[] { Assembly.GetExecutingAssembly().Location });
break;
case "--uninstall":
ManagedInstallerClass.InstallHelper(new[] { "/u", Assembly.GetExecutingAssembly().Location });
break;
}
}
else
{
ServiceBase[] servicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(servicesToRun);
}
}
, Alors vous pouvez simplement appeler WindowsService1.exe
avec --install
argument et il va installer le service et vous pouvez oublier InstallUtil.exe
.
C'est ce que j'ai fait pour la faire disparaître:
-
Trouvé où installutil réside sur mon PC. Dans mon cas c'était C:\Windows\Microsoft.NET\Framework\v4.0.30319
-
A ouvert une invite de commande en tant Qu'administrateur et a changé le répertoire actuel à ci-dessus: "cd C:\Windows\Microsoft.NET\Framework\v4.0.30319"
Puis entré: "installutil C:\MyProgramName.exe'
Fait intéressant, avant la solution ci-dessus, j'ai essayé différentes options, parmi les ajoutant C:\Windows\Microsoft.NET\Framework\v4.0.30319 à la variable chemin système, mais il ne pouvait toujours pas le trouver.
Je vous souhaite une installation fluide.
InstallUtil.exe se trouve généralement sous l'une des versions répertoriées sous C:\Windows\Microsoft.NET\Framework.
Dans mon cas, il est sous v4. 0. 30319.
Vous pouvez simplement vérifier votre chemin:
Echo % chemin%
Devrait vous donner une liste des répertoires recherchés pour les exécutables.
Sauf si vous avez modifié votre chemin, les éléments suivants doivent être disponibles dans l'invite de commande du développeur et non dans cmd:
- msbuild
- mstest(pour ultime)
- scc
- ilasm
... etc
Si ceux-ci ne sont pas disponibles, vous pouvez avoir une installation corrompue.
Trouvé une solution sur bytes.com
Le code pour installer un service:
@ECHO Installing Service...
@SET PATH=%PATH%;C:\Windows\Microsoft.NET\Framework\v4.0.30319\
@InstallUtil C:\Unlock_4_Service\bin\Debug\Unlock_4_Service.exe
@ECHO Install Done.
@pause
@ InstallUtil <.chemin>
Code pour désinstaller le service
@ECHO Installing Service...
@SET PATH=%PATH%;C:\Windows\Microsoft.NET\Framework\v4.0.30319\
@InstallUtil /u C:\Unlock_4_Service\bin\Debug\Unlock_4_Service.exe
@ECHO Uninstall Done.
@pause
@ InstallUtil / u <.chemin>
Enregistrez les 2 fichiers sous service_install.chauve-souris et service_uninstall.MTD
Exécutez les fichiers en tant qu'administrateur, chaque fois que vous devez installer ou désinstaller le service.
Ouvrez l'invite de commande visual studio en mode admin, c'est-à-dire faites un clic droit sur l'invite de commande vs et exécutez-la en tant qu'administrateur
Cela s'est peut-être produit parce que vous n'auriez pas ouvert l'invite de commande en tant qu'administrateur ou avec des privilèges D'administration.
Je l'ai eu après être retourné à 2015 à partir de 2017 et j'utilisais TOUJOURS l'invite de commande 2017. Quelque chose à vérifier.