我在 vb.net 中创建了一个 Windows 服务。无论如何我可以为它创建一个不需要使用 installutil 的安装吗?
3 回答
Installutil 是必需的,但为了使事情更容易,您可以创建一个安装项目,以便您只需运行 .msi 即可安装该服务。(这在后台使用 installutil,但它大大简化了安装。)
一个演练在这里:http: //support.microsoft.com/kb/816169
另一个在这里:http: //msdn.microsoft.com/en-us/library/zt39148a (VS.80).aspx
两者的主要区别在于样本中的代码量。他们都将引导您完成相同的过程。
链接到的文章很旧,但仍然适用于VS2010。就在上周,我使用第二篇文章介绍了 VS2010 服务的流程。
为什么要避免 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>
您始终可以使用注册表项来执行此操作。
钥匙位于HKLM\SYSTEM\CurrentControlSet\services
您创建的键名是服务处理程序上服务的嵌入名称。以下值是相关的:
DisplayName
= 在服务管理器中显示的文本
ImagePath
= 服务可执行文件的 FQ 文件名
Start
(DWORD) = 启动类型 (3 = 自动启动)
DelayedAutoStart
(DWORD) = (1 = 延迟)
WOW64
(DWORD) = (0 = 64 位应用程序,1 = 32 位应用程序)
ErrorControl
(双字) = 0
ObjectName
= {用户名} 在(系统帐户的本地系统)下运行
还有很多其他值,但这应该可以帮助您入门。