web-dev-qa-db-ja.com

VisualStudioのinstallutil.exeを使用せずにWindowsサービスをインストールする

数日以内に、開発マシン(最終的にはWCF-over-SOAPサービスをホストする)で開発したWindowsサービスをステージングマシンにインストールします。

Visual Studio 2013を使用しているので、VSコマンドプロンプトを使用して、installutil.exeを使用してそのサービスをインストールできます。

しかし、ターゲットマシンは単純な古いWindows Server 2008 R2を実行します

installutil.exeがないWS2008に.NETWindowsサービスをインストールするにはどうすればよいですか?

残念ながら、Visual Studio 2012の時点で、MicrosoftはVisual Studioの「セットアッププロジェクト」組み込み機能を削除しました。これは、私opineが彼らの長年のビジネスパートナーであるInstallShield(Flexeraソフトウェアが所有)にうなずきます。彼らは、InstallShieldを使用してWindowsインストーラーをグラフィカルに構築するために、恐ろしく高価なサードパーティソフトウェアを使用するように顧客に指示したかったため、この機能を削除しました。ここで、Visual Studio 2012または2013でセットアッププロジェクトをグラフィカルに設計する場合は、次のいずれかを行う必要があります。

  1. 無料ですが非常に機能が制限された「InstallShieldLE」をダウンロードしてください。これは常に非常に高価な製品にアップセルしようとし、必要な便利なことの99%を実行できません(これを試した後は強くお勧めしません) );

  2. 学ぶ WiX そして無料のWiXツールキットを使用してインストーラーを構築します(特に簡単ではありませんが、実行可能です)。

  3. 学ぶ [〜#〜] nsis [〜#〜] そして無料のNSISツールキットを使用してインストーラーを構築します(特に簡単ではありませんが、実行可能です)。

  4. 例に従って、プログラムでサービスを登録するC#プログラムを作成します ここではStack Overflow 。コードは、クライアントプロファイルで利用できるSystem.Configuration.Installアセンブリに依存します(ありがたいことに)。詳細については、 [〜#〜] msdn [〜#〜] を参照してください。これはおそらく「最も簡単な」方法です。 Mainメソッドを使用してEXEとしてサービスを出荷するだけです...

2
allquixotic

「InstallUtil」は、Visual Studioの一部としてインストールされると記載されているドキュメントがあるにもかかわらず、VisualStudioが展開されていないサーバー上に存在します。ご使用のWindowsのバージョンと必要な.NETFrameworkに応じて、「installutil」ツールは次の場所にあります。

C:\ Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe C:\ Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe C:\ WINNT\Microsoft.NET\Framework\v1.1.4322 installutil

サービスが対象としている.NETFrameworkのバージョンと一致するバージョンを使用してください。

1
Josh Gallagher