sc.exeまたはinstallutil.exeでWindowsサービスをインストールする - 違いはありますが、どちらですか?

StackOverflow https://stackoverflow.com/questions/4692250

質問

Sc.exeinstallutil 両方ともWindowsサービスをインストール/アンインストールします。しかし、彼らは同じように機能していないようです。

違いはなんですか?


例えば installutil 失敗(いくつかのファイルまたは依存関係が発見されていないエラーが見つかりません) sc create 喜んでサービスをインストールします。奇妙さを増します。実行してもサービスは表示されません ネットスタート コンソールで。しかし、それはサービスGUIに現れます。このバリエーションは、アンインストールしようとすると起こります。

私は自分でサービスを書きました、そして以前のバージョンは機能します。 dotnet3.5。

役に立ちましたか?

解決

はい、サービスのインストールは特に複雑ではありません。レジストリキーのほんの一握りを書くだけです。 regedit.exeを使用してルックシーを使用できます。hkey_local_machine system currentControlset Servicesに移動できます。

Sc.exeは、提供されたコマンドライン引数を使用して、これらのキーも書き込むことができます。それにもかかわらず、これはそれを行う正しい方法ではありません。 Installutil.exeのポイントは、アクティブ化できることです 習慣 インストールコード。サービス著者が書いたコード。それはそれほど珍しいことではありませんが、サービスは自分の使用のために登録キーに構成情報を詰める傾向があります。 Regeditを使用して見ている場合、その証拠がたくさんあります。

他のヒント

私はinstallutil.exeよりもsc.exeを好む。

Installutilは、Dreadful ProjectInstallerクラス(私が信じている)を追加し、そこにサービス名とサービスの説明がハードコードを追加することを強制します。

これにより、同じサービスの2つのバージョンを同じマシンで実行していると同時に配置することが非常に困難になります。

だから私はinstallutil.exeをまったく使用しません。また、以前の回答のために:展開パッケージに含まれる必要があります。 Sc.exeはすでにWindows XP以上にあります(私は信じています)。

主な違いはそれです installutil ユーティリティは、サービスのインストール用ではなく、一般的なインストーラーツールとしてのものです。 MSDNページから、次のことがわかります。

「インストーラーツールは、指定されたアセンブリでインストーラーコンポーネントを実行してサーバーリソースをインストールおよびアンインストールできるコマンドラインユーティリティです。このツールは、System.Configuration.install Namespaceのクラスと組み合わせて機能します。」

そのため、サービスをインストールできますが、他にも多くの多くの利点があります。に基づいて実行可能ファイルを作成します インストーラークラス 全体のインストール/アンインストール手順のプログラム制御を提供します。 ServiceInstallerServiceProcessInstaller, 、たとえば、サービスのインストールに使用されます。

「SC」ユーティリティはサービス制御に使用され、「Create」コマンドは、選択した実行可能ファイルに基づいてサービスを作成するだけです。

あなたの例で
1.インストールすることを意図したものではありません installutil そして、エラー応答はそれについて非常に明確にする必要があります。
2. installutil インストールコードのバグと使用のために失敗します sc create おそらくあなたのために誤ったサービスを作成するでしょう。チェックイン {exe_name} .installlog 詳細については。

アンインストールの使用量から:Windows 7の下のSc.exeはすぐにリストからエントリを削除します。

InstallUtilは.NETサービスを使用するのに好ましい方法ですが、その欠点の1つは、特定の状況でインストールが失敗する可能性のあるapp.configからバインドリダイレクトをピックアップしないことです。 SCを使用すると、インストール時にコードを実行できないことを犠牲にして、SCを使用することで利益が得られる場合があります。

残念ながらOPの場合、 いちばん上の棚 彼の質問の時点では存在しませんでした。 SCとInstallutilの両方の欠点を中心に機能し、Visual Studioで開始するときにデバッガーが添付されていることからサービスを開始できます。さらに、入力がはるかに簡単です myservice install Installutilの特定のフォルダーにドリルダウンするか、SCの大量のパラメーターを入力する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top