2

このチュートリアルを使用して、Visual Studio 2010 とそのストック コンソール アプリ プロジェクトを使用して C# Windows サービスを作成しましたが、すべてを変更してそのままインストールしようとした後:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil" /i myservice.exe

コントロール パネルのサービス リストに自分のサービスが表示されません。次に、からの出力を確認したところ、次のinstallutilメッセージが見つかりました。

インストーラーがないため、InstallState ファイルを削除します。

そのように定義されたインストーラークラスがあるため、なぜそれが言うのかわかりません:

namespace MySrvr
{
    class MyServiceInstaller : System.Configuration.Install.Installer
    {
        public MyServiceInstaller()
        {
            ServiceProcessInstaller process = new ServiceProcessInstaller();

            process.Account = ServiceAccount.LocalSystem;

            ServiceInstaller serviceAdmin = new ServiceInstaller();

            serviceAdmin.StartType = ServiceStartMode.Automatic;

            serviceAdmin.ServiceName = "MyServiceName";
            serviceAdmin.DisplayName = "My Service Display Name";
            serviceAdmin.Description = "My Service Description";

            Installers.Add(process);
            Installers.Add(serviceAdmin);
        }

    }
}

それで、私はここで何が間違っていますか?

4

1 に答える 1

5

はい、分かりました。2 つのエラー:

  1. インストーラー クラスは次のように宣言する必要があります。public

  2. [RunInstaller(true)]その前に属性が必要です。

そのような:

namespace MySrvr
{
    [RunInstaller(true)]
    public class MyServiceInstaller : System.Configuration.Install.Installer
    {
    }
}

のバージョンinstallutilは関係ありません。

于 2013-03-28T03:26:23.287 に答える