我在vb.net中创建了一个Windows服务。无论如何我可以为它创建一个不需要使用installutil的安装吗?
答案 0 :(得分:9)
Installutil是必要的,但为了简化操作,您可以创建一个安装项目,这样您只需运行.msi即可安装该服务。 (这使用了引擎盖下的installutil,但它大大简化了安装。)
这里有一个演练:http://support.microsoft.com/kb/816169
另一个在这里:http://msdn.microsoft.com/en-us/library/zt39148a(VS.80).aspx
两者之间的主要区别在于样本中的代码量。他们都走了同样的过程。
链接的文章很旧,但仍适用于VS2010。我上周使用了第二篇文章来介绍VS2010服务的过程。
答案 1 :(得分:4)
为什么要避免使用installutils?
您可以尝试使用sc
命令,如sc create ...
编辑:这是一个MSDN页面:http://support.microsoft.com/?kbid=251192
DESCRIPTION:
Creates a service entry in the registry and Service Database.
USAGE:
sc <server> create [service name] [binPath= ] <option1> <option2>...
OPTIONS:
NOTE: The option name includes the equal sign.
A space is required between the equal sign and the value.
type= <own|share|interact|kernel|filesys|rec>
(default = own)
start= <boot|system|auto|demand|disabled|delayed-auto>
(default = demand)
error= <normal|severe|critical|ignore>
(default = normal)
binPath= <BinaryPathName>
group= <LoadOrderGroup>
tag= <yes|no>
depend= <Dependencies(separated by / (forward slash))>
obj= <AccountName|ObjectName>
(default = LocalSystem)
DisplayName= <display name>
password= <password>
答案 2 :(得分:2)
您可以随时使用注册表项
密钥位于HKLM\SYSTEM\CurrentControlSet\services
您创建的密钥名称是服务处理程序上服务的嵌入名称。以下值是相关的:
DisplayName
=在服务管理器中显示的文本
ImagePath
=服务可执行文件的FQ文件名
Start
(DWORD)=启动类型(3 =自动启动)
DelayedAutoStart
(DWORD)=(1 =延迟)
WOW64
(DWORD)=(0 = 64位应用,1 = 32位应用)
ErrorControl
(DWORD)= 0
ObjectName
= {username}在(LocalSystem for system account)下运行
还有很多其他值,但这应该让你开始。