Well I also looked a sample on Code Project for this which calls the InstallUtil utility through code, I guess if you search this site for Dynamic Windows Service Installer, you will come across that.... anyway the code is as: using System; using System.Diagnostics; using System.Net; using System.IO; namespace ServiceInstaller { /// /// /// public enum WindowsServiceAccountType { LocalService, NetworkService, LocalSystem, User } /// /// /// public class WindowsServiceInstallInfo { #region "FIELDS" private System.String _windowsServiceName; private System.String _wsDescription; private readonly string _windowsServicePath; private readonly string _windowsServiceAssemblyName; private WindowsServiceAccountType _wsAccountType; private readonly string _wsAccountUserName; private readonly string _wsAccountPassword; #endregion #region "CONSTRUCTOR" /// /// /// /// Path to folder where Windows Service binary is located. /// Windows Service Assembly Name. /// Windows Service Account Type.(not user type) public WindowsServiceInstallInfo(string windowsServicePath, string windowsServiceAssemblyName, WindowsServiceAccountType wsAccountType) : this("", windowsServicePath, windowsServiceAssemblyName, wsAccountType) { } /// /// /// /// Name of the windows service. /// Path to folder where windows service assembly stored. /// windows service assembly name. /// Windows service account type (not user type) public WindowsServiceInstallInfo(string windowsServiceName, string windowsServicePath, string windowsServiceAssemblyName, WindowsServiceAccountType wsAccountType) : this(windowsServiceName, "", windowsServicePath, windowsServiceAssemblyName, wsAccountType) { } /// /// /// /// Name of windows service.