I have no experience writing batch scripts, but I was wondering if there was a way to install a .NET Windows service using installutil.exe
using such a script, or uninstall the service if it is already installed, ideally with some kind of confirmation that I actually would like to perform the uninstall (e.g. press y to uninstall).
Here are some details:
- The .exe for the service is located in the
C:\Program Files\Data Service
directory - The script should be in the same directory as the .exe for the service
- It would be nice to add a simple line to a log file (we'll call it
program.log
, also in this directory) after the service has been installed - The machine is running Windows Server 2003 with the .NET Framework installed in the default directory
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
If you feel this could be done in a better way it would be nice to hear other suggestions. I could always write a service installer but that is not a priority.
i'm not sure why you'd need a batch file for a one liner. this is what i'd use.
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /i ServiceAssembly.dll
This is the one I use. I found it and use it. Thanx to the creator..
It is easier to just make self-installing services. Once you implement this, you can either run the service exe directly with the (/i or /u switch), or wrap the call in a batch file if you'd like.
create a file with .bat extension and place this in the file
installutil -u c:\YourServiceLocation\Service.exe
I have found that it is always better to use a good install project that to use batch files for installing an app. There are times though that that can't be done. Several projects at work were written in the days of Windows NT and early Windows XP and use simple batch files for installation. During those times, converting the batch file to an install packed is more trouble than a simple tweak. Through much searching, I have found that http://ss64.com/nt/ is a very good Windows batch file reference. (It just feels strange, with all our advancement in software technolgies, to have to write that last sentence.)
Anyway, Happy Coding! - regardless of the "language".
You could setup your service exe to support self registration / unregistration using command line arguments (-i -u etc) instead of writing a batch file to do the same thing.
Information on creating Self Installing Services In .NET
http://anotherlab.rajapet.net/2006/06/self-installing-services-in-net.html
http://www.gotnet.biz/WindowsServiceSelfInstaller.ashx
Also adding a Setup Project to your solution and having Visual Studio build an install package might be faster.
How to create a Setup project for a Windows Service in Visual Basic .NET or in Visual Basic 2005
(VB) http://support.microsoft.com/kb/317421
(C#) http://support.microsoft.com/kb/816169