2009-08-31 10 views
6

私はVS.net 2008とVB.netで開発された簡単なWindowsサービスを持っています。コマンドプロンプトからInstallutil.exeを使用してサービスをインストールすると、魅力的に機能しています。セットアッププロジェクトでインストールしたときにWindowsサービスが表示されない

セットアッププロジェクトを追加して出力を設定し、正常にインストールされたとは言いますが、出力をビルドしてインストールしようとすると、サービスに表示されません。

イベントログは、正常にインストールされたことを示します。レジストリを確認しただけで、HKEY_CURRENT_USER \ Software \ Microsoft \ installer \ assembliesにアセンブリが配置されました。

しかし、サービス一覧に表示されない理由はわかりません。私はリフレッシュして再開しました。

おかげ

答えて

1

アイデアのカップル:

あなたは下でそれを実行しようとしている同じWindowsアカウントでインストールされていますか?セットアッププロジェクトの "InstallAllUsers"プロパティがTrueに設定されていますか?

セットアッププロジェクトのProductNameプロパティとTitleプロパティを正しく設定してもよろしいですか?サービスがリストに「SetupProject1」などの別の名前で表示されている可能性があります。

同様に、サービスのProjectInstallerクラスのデザインビューでServiceInstallerのプロパティを確認し、ServiceNameプロパティとDisplayNameプロパティが必要なものに設定されていることを確認します。

+0

ありがとうございました。 InstallAllUsersをtrueにチェックし、productnameとtitleが正しいことを確認しました。サービスインストーラでも正しいです。私は私のマシンを再起動しました。 Eventlogは、サービスが正常にインストールされたことを示します –

+1

この手順は本当に私が問題を解決するのに本当に役に立たなかった、下の行マークによって掲示された解決策は私の場合の欠けたステップだった – Sanket

11

解決策 MSIプロジェクトにカスタムアクションを追加する必要があります。 カスタムアクションでは、サービスの出力をインストールセクションに追加します。これにより、サービスに必要なインストールコードが実行されます。すなわちinstallutil.exeは、すべてのヘルプ

+1

"アンインストール"セクションで同じことをすることを忘れないでください。 "そこに奉仕する。 – andrecarlucci

+0

私もこれをやった。ソフトウェアは適切な場所にコピーされますが、サービスはリストに表示されません。 –

+0

私はサービスプロジェクトの内部でサービスのインストーラを作成するステップをスキップしました。 http://msdn.microsoft.com/en-us/library/zt39148a(v=VS.100).aspx –

6

ため

感謝を何私は同じ問題を抱えていたし、セットアッププロジェクトを作成する前の部分に注意を払っていないと同じ。 http://msdn.microsoft.com/en-us/library/zt39148a(v=VS.100).aspx

Service1.vbやService1.csを右クリックし、[ビューデザイナーを選択し、ソリューションエクスプローラで、あなたのサービス

用のインストーラを作成します。

デザイナーの背景をクリックして、その内容の代わりにサービス自体を選択します。

デザイナーで、右クリックし、[インストーラーの追加]をクリックします。

デフォルトでは、2つのインストーラを含むコンポーネントクラスがプロジェクトに追加されます。コンポーネントにはProjectInstallerという名前が付けられており、インストーラにはサービスのインストーラと、サービスに関連付けられたプロセスのインストーラがあります。

ProjectInstallerのデザインビューで、ServiceInstaller1またはserviceInstaller1をクリックします。

[プロパティ]ウィンドウで、ServiceNameプロパティがMyNewServiceに設定されていることを確認します。

StartTypeプロパティをAutomaticに設定します。

デザイナーで、ServiceProcessInstaller1(Visual Basicプロジェクトの場合)またはserviceProcessInstaller1(Visual C#プロジェクトの場合)をクリックします。 AccountプロパティをLocalSystemに設定します。これにより、サービスがインストールされ、ローカルのサービスアカウントで実行されます。

+0

これは最終的に(正しいサービス名を得るために)私のために解決しましたが、rowmarkによって記述されたカスタムアクションを追加しなければなりませんでした。そうでなければサービスはまったく出現しませんでした –

+0

偉大な答え。私のためにそれを解決した –