22

Windowsサービスをインストールしようとしています。

c:\ windows \ microsoft.net \ Framework64 \ v4.0.30319 \ InstallUtil.exe c:\ foo\MyAssembly.exeを実行しています

すべてのフェーズ(インストール、コミット)が正常に完了したという素晴らしいメッセージが表示されます。

(サービスのクレデンシャルを入力するように求められません)

その後、サービスコンソールにサービスが表示されません。インストールログには何も役に立ちません。

ソリューションは64ビットボックス上に構築されており、64ビットマシンにサービスをインストールしようとしています。ただし、ソリューションプロパティのオプションとして64ビットは表示されません。すべてのcsprojファイルを手動で編集して、[プラットフォーム]ノードに「x64」を選択しました。

VisualStudioからサービスを実行できます。問題ありません。

Installer.cs

[RunInstaller(true)]
public partial class Installer : System.Configuration.Install.Installer
{
    public Installer() {
        InitializeComponent();
    }
}

これは、VisualStudioによって提供されるデフォルトのインストーラーです。

4

2 に答える 2

30

いくつかのInstallerオブジェクトをInstallersコレクションに追加する必要があります。ここでの例は、Windowsサービスをインストールするために必要なものです。何かのようなもの

[RunInstaller(true)]
public class Installer : System.Configuration.Install.Installer
{
    private ServiceInstaller serviceInstaller;
    private ServiceProcessInstaller processInstaller;

    public Installer()
    {
        // Instantiate installers for process and services.
        processInstaller = new ServiceProcessInstaller();
        serviceInstaller = new ServiceInstaller();

        // The services run under the system account.
        processInstaller.Account = ServiceAccount.LocalSystem;

        // The services are started manually.
        serviceInstaller.StartType = ServiceStartMode.Manual;

        // ServiceName must equal those on ServiceBase derived classes.
        serviceInstaller.ServiceName = "Hello-World Service 1";

        // Add installers to collection. Order is not important.
        Installers.Add(serviceInstaller);
        Installers.Add(processInstaller);
    }
}
于 2012-09-11T04:09:18.980 に答える
0

次のSO質問には、Google検索リンクからここに来る人にも関連する可能性のある同様のシナリオと回答があります。

VisualStudioで作成されたWindowsサービスをインストールします

于 2017-01-22T18:12:48.413 に答える