vb.net で Windows サービスを作成しました。とにかく、installutil を使用する必要のないインストールを作成できますか?
3 に答える
Installutilは必要ですが、作業を簡単にするために、セットアッププロジェクトを作成して、.msiを実行するだけでサービスをインストールできます。(これは内部でinstallutilを使用しますが、インストールを大幅に簡素化します。)
1つのウォークスルーはここにあります:http ://support.microsoft.com/kb/816169
そしてもう1つはここにあります:http://msdn.microsoft.com/en-us/library/zt39148a (VS.80).aspx
2つの主な違いは、サンプル内のコードの量です。彼らは両方とも同じプロセスを通してあなたを歩きます。
リンク先の記事は古いものですが、VS2010でも引き続き適用されます。2番目の記事を使用して、先週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
(DWORD) = 0
ObjectName
= {username} で実行する (システム アカウントの LocalSystem)
他にも多くの値がありますが、それで始める必要があります。