ServiceProcessInstaller. The documentation for these two classes in the .NET Framework SDK also include samples.
Basically, you derive from
Installer to create your own installer then add an instance of each of the aforementioned classes according to the documentation.
You can use the installutil.exe utility that is installed with the .NET Framework or include the assembly that includes the installer class in a Windows Installer setup project in VS.NET as a Custom Action.
If you want to set anything during installation, you'll have to use a command-line switch. You can find more information about this in the documentation for the
Installer.Context property. You use some code like the following in your derived
Installer class to get parameters passed to it from installutil.exe or from Windows Installer:
string value = Context.Parameters["SvcName"];If you want to use this in an MSI package (Windows Installer), you can pass the command-line option based on an MSI database property that can be set by msiexec.exe when installing the package. For more information about that, see a previous thread I replied to: http://www.codeproject.com/script/comments/forums.asp?msg=711576&forumid=1649&XtraIDs=1649&searchkw=custom+action+windows+installer&sd=10%2F17%2F2003&ed=1%2F15%2F2004#xx711576xx[^].
-----BEGIN GEEK CODE BLOCK-----
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----