Visual Studio 2010 で新しい Windows サービスを作成すると、サービスを実行するには InstallUtil と net start を使用するように指示するメッセージが表示されます。
次の手順を試しました:
- 新しいプロジェクトを作成する ファイル -> 新規 -> プロジェクト -> Windows サービス
- プロジェクト名: TestService
- プロジェクトをそのままビルドする (Service1 コンストラクター、OnStart、OnStop)
- コマンドプロンプトを開き、実行します"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" テストサービス.exe
- 走るネットスタートテストサービス。
ステップ4の出力
トランザクションインストールを実行しています。
インストールのインストール フェーズを開始します。
C:\Users\myusername\Documents\Visual Studio 2010\Projects\TestService\TestService\obj\x86\Debug\TestService.exe アセンブリの進行状況については、ログ ファイルの内容を参照してください。
ファイルは、C:\Users\myusername\Documents\Visual Studio 2010\Projects\Tes tService\TestService\obj\x86\Debug\TestService.InstallLog にあります。
アセンブリ 'C:\Users\myusername\Documents\Visual Studio 2010\Projects\TestS ervice\TestService\obj\x86\Debug\TestService.exe' をインストールしています。
影響を受けるパラメータは次のとおりです。
コンソールにログイン =
ログファイル = C:\Users\myusername\Documents\Visual Studio 2010\Projects\TestService\T estService\obj\x86\Debug\TestService.InstallLog
アセンブリパス = C:\Users\myusername\Documents\Visual Studio 2010\Projects\TestService\TestService\obj\x86\Debug\TestService.exe
C:\Users\myusername\Documents\Visual Studio 2010\Projects\TestService\TestSe rvice\obj\x86\Debug\TestService.exe アセンブリに、RunInstallerAttribute.Yes 属性を持つパブリック インストーラーが見つかりませんでした。
インストール フェーズが正常に完了し、コミット フェーズが開始されます。
C:\Users\myusername\Documents\Visual Studio 2010\Projects\TestService\TestService\obj\x86\Debug\TestService.exe アセンブリの進行状況については、ログ ファイルの内容を参照してください。
ファイルは、C:\Users\myusername\Documents\Visual Studio 2010\Projects\Tes tService\TestService\obj\x86\Debug\TestService.InstallLog にあります。
アセンブリ 'C:\Users\myusername\Documents\Visual Studio 2010\Projects\TestS ervice\TestService\obj\x86\Debug\TestService.exe' をコミットしています。
影響を受けるパラメータは次のとおりです。
コンソールにログイン =
ログファイル = C:\Users\myusername\Documents\Visual Studio 2010\Projects\TestService\T estService\obj\x86\Debug\TestService.InstallLog
アセンブリパス = C:\Users\myusername\Documents\Visual Studio 2010\Projects\TestService\TestService\obj\x86\Debug\TestService.exe
C:\Users\myusername\Documents\Visual Studio 2010\Projects\TestService\TestSe rvice\obj\x86\Debug\TestService.exe アセンブリに、RunInstallerAttribute.Yes 属性を持つパブリック インストーラーが見つかりませんでした。
インストーラーがないため、InstallState ファイルを削除します。
コミット フェーズが正常に完了しました。
トランザクションのインストールが完了しました。
ステップ5の出力
サービス名が無効です。
NET HELPMSG 2185 と入力すると、さらに詳しいヘルプが表示されます。
ベストアンサー1
デザイナーで Service.cs ファイルを開き、右クリックしてメニュー オプションの [インストーラーの追加] を選択する必要があります。
そのままではインストールできません。まずインストーラー クラスを作成する必要があります。
サービス インストーラーに関する参考資料:
方法: サービス アプリケーションにインストーラーを追加する
かなり古いですが、私が話しているのは次のことです。
C# での Windows サービス: インストーラーの追加 (パート 3)
これを行うと、 がProjectInstaller.cs
自動的に作成されます。次に、これをダブルクリックしてデザイナーに入り、コンポーネントを構成できます。
serviceInstaller1
には、サービス自体のプロパティがあります。Description
、、およびが最も重要です。DisplayName
ServiceName
StartType
serviceProcessInstaller1
重要なプロパティがあります。Account
それは、サービスが実行されるアカウントです。
例えば:
this.serviceProcessInstaller1.Account = ServiceAccount.LocalSystem;