How to resolve "'installutil' is not recognized as an internal or external command, operable program or batch file."?
Just tried to run an application via the following:
I have browsed to the directory with an app WindowsService1.exe
in it, then tried the command Installutil WindowsService1.exe
but got the following error...
As VS has only been installed for a day or two I'm worried that something may be wrong with that install as it should recognise installutil.
Are there some basic diagnostics I can perform to ensure that VS Command Prompt is finding all the programs that it should ?
EDIT
If i run PATH
in the command prompt I see the following:
This is a tiny bit off-topic but I've stopped using InstallUtil to install my services. It's is really easy to just add it to the service itself. Add a reference to System.Configuration.Install
(not available in the Client Profile editions if I remember right) and then update your Main()-function in Program.cs like this.
static void Main(string[] args) {
if (Environment.UserInteractive) {
var 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 Service1()
};
ServiceBase.Run(servicesToRun);
}
}
Then you can just call WindowsService1.exe
with the --install
argument and it will install the service and you can forget about InstallUtil.exe
.
This is what I have done to make it go away:
Found where installutil resides on my PC. In my case it was C:\Windows\Microsoft.NET\Framework\v4.0.30319
Opened a command prompt as an Administrator and changed current directory to above: 'cd C:\Windows\Microsoft.NET\Framework\v4.0.30319'
Then entered: 'installutil C:\MyProgramName.exe'
Interestingly, prior to above solution I tried different options, among them adding C:\Windows\Microsoft.NET\Framework\v4.0.30319 to the System Path variable, but it still could not find it.
Wish you all smooth installation.
InstallUtil.exe is typically found under one of the versions listed under C:\Windows\Microsoft.NET\Framework.
In my case it is under v4.0.30319.
You could just check your path:
echo %PATH%
should give you a list of directories searched for executables.
Found a solution on bytes.com
The code to install a 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 <.exe file path of your windows service>
Code to uninstall the 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 <.exe file path of your windows service >
Save the 2 files as service_install.bat and service_uninstall.bat
Run the files as administrator, every time you have to install or uninstall the service.
Before Installing service using command line...
use 2 steps:
- cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
- InstallUtil.exe Path\MyWindowsService.exe