2

何かをテストするための非常に単純なWindowsサービスを構築し、.exeを取得するために構築しました。MSDNのこの記事に従って、Visual Studioコマンドプロンプト2010(管理者として実行)を使用してサービスもインストールしましたinstallutil TestService.exe

コマンドを使用するinstallutilと、すべてが正常に実行され、サービスがインストールされたことを示すメッセージが表示されます。さらに、(Visual Studioのサーバーエクスプローラーで)サービスノード内を確認したときにサービスを開始すると、という名前のサービスが表示されませんTestService.exe

また、[スタート]メニュー-> [マイコンピュータ](右クリック)->[管理]->[サービスとアプリケーション]->[サービス]にはTestService.exe、サービスを開始するための方法が表示されません。

サービスを開始するにはどうすればよいですか?

関数内のコードOnStart

Process[] testProcess = Process.GetProcessesByName("notepad.exe");
if (testProcess.Length == 0)
    File.WriteAllText(@"C:\Users\User1\Desktop\service.txt", "nothing");

else
    File.WriteAllText(@"C:\Users\User1\Desktop\service.txt", "run");
4

3 に答える 3

10

以前に問題が発生し、コマンドinstallutilを使用すると機能することがわかりましたが、機能しませんでした。scinstallutil

次のコマンドを使用してサービスをインストールしてみてください。

sc create servicename binPath= serviceexe.exe
于 2012-05-23T08:47:57.057 に答える
9

この問題が発生したばかりで、次の手順で解決できました。これらの手順をスキップすると、セットアッププロジェクトがファイルをビルドし、正しいディレクトリにコピーします。ただし、これらの手順がないと、バイナリはサービスとして登録されません。

  1. ソリューションエクスプローラーで、セットアッププロジェクトを右クリックし、[表示]をポイントして、[カスタムアクション]を選択します。カスタムアクションエディタが表示されます。

  2. カスタムアクションエディタで、[カスタムアクション]ノードを右クリックし、[カスタムアクションの追加]を選択します。[プロジェクトでアイテムを選択]ダイアログボックスが表示されます。

  3. リストボックスでアプリケーションフォルダをダブルクリックして開き、MyNewService(アクティブ)からのプライマリ出力を選択して、[OK]をクリックします。プライマリ出力は、カスタムアクションの4つのノードすべて(インストール、コミット、ロールバック、およびアンインストール)に追加されます。

  4. セットアッププロジェクトをビルドします。

于 2013-03-06T20:52:31.450 に答える
1

VS 2013で作業しているときに、プロジェクトを右クリックしてタイプの新しいアイテムを追加してインストーラーを追加したときに、この問題が発生しましたInstaller ClassDesign View主な違いは、のを右クリックしてをWindows Serviceクリックする必要があることですAdd Installer

.Net 4.5および4.6の詳細については、「サービスの作成」、 「インストーラーの追加」 、および「サービスのインストール」を参照してください。

于 2015-07-31T14:39:16.457 に答える