5

我在 vb.net 中创建了一个 Windows 服务。无论如何我可以为它创建一个不需要使用 installutil 的安装吗?

4

3 回答 3

9

Installutil 是必需的,但为了使事情更容易,您可以创建一个安装项目,以便您只需运行 .msi 即可安装该服务。(这在后台使用 installutil,但它大大简化了安装。)

一个演练在这里:http: //support.microsoft.com/kb/816169

另一个在这里:http: //msdn.microsoft.com/en-us/library/zt39148a (VS.80).aspx

两者的主要区别在于样本中的代码量。他们都将引导您完成相同的过程。

链接到的文章很旧,但仍然适用于VS2010。就在上周,我使用第二篇文章介绍了 VS2010 服务的流程。

于 2012-01-30T19:52:04.723 回答
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>
于 2012-01-30T19:58:21.620 回答
2

您始终可以使用注册表项来执行此操作。
钥匙位于HKLM\SYSTEM\CurrentControlSet\services

您创建的键名是服务处理程序上服务的嵌入名称。以下值是相关的:

DisplayName = 在服务管理器中显示的文本

ImagePath= 服务可执行文件的 FQ 文件名

Start(DWORD) = 启动类型 (3 = 自动启动)

DelayedAutoStart(DWORD) = (1 = 延迟)

WOW64(DWORD) = (0 = 64 位应用程序,1 = 32 位应用程序)

ErrorControl(双字) = 0

ObjectName= {用户名} 在(系统帐户的本地系统)下运行

还有很多其他值,但这应该可以帮助您入门。

于 2012-01-30T21:29:57.390 回答