4

私はこのサービスをインストールするために何の役にも立たないように試みてきました。

正直なところ、Visual Studioインストーラーが完全に意味をなさなかったため、現在InnoSetupを使用しています(午前1時でもあります。D:)

私はこのスレッドからいくつかのコードを取りました:Windowsサービス用のInno Setup?

そして、そこにいる誰もがそれが彼らにとって完璧に機能したと言っていますが、彼らは彼らが何をしたか、または彼らがそのコードをどこに置いたかを完全には説明していません。それはコンソールアプリケーションでしたか?どこ?

それで、私はそれが行くはずだったかもしれないと思ったところにそれを貼り付けました。インストーラークラスをサービスに追加すると、「Program.cs」クラスが作成されるので、そこに配置します。

これが私の「Program.cs」です。

using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Configuration.Install;
using System.Reflection;

namespace Installer
{
    static class Program
    {
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    static void Main(string[] args)
    {
        Console.WriteLine("MASDjhd");
        string parameter = string.Concat(args);
        switch (parameter)
        {
            case "--install":
                ManagedInstallerClass.InstallHelper(new string[] { Assembly.GetExecutingAssembly().Location });
                break;
            case "--uninstall":
                ManagedInstallerClass.InstallHelper(new string[] { "/u", Assembly.GetExecutingAssembly().Location });
                break;
          }

        }
    }
}

これが私のInnoScriptです:

[Setup]
AppName=MachineVerification
AppVersion=1.0
DefaultDirName={pf}\MachineVerification
DefaultGroupName=MachineVerification
UninstallDisplayIcon={app}\MachineVerification.exe
Compression=lzma2
SolidCompression=yes

[Files]
Source: "Installer.exe"; DestDir: "{app}"

[Run]
Filename:"{app}\Installer.exe"; Parameters: "--install"

[UninstallRun]
Filename: "{app}\Installer.exe"; Parameters: "--uninstall"

ヘルプ?D:

4

1 に答える 1

4

ここで私の答えを見つけました:.NET c#でのWindowsサービスの自己インストール

リンクをたどりたい人のために、解決策は追加することです:

        var processInstaller = new ServiceProcessInstaller();
        var serviceInstaller = new ServiceInstaller();

        //set the privileges
        processInstaller.Account = ServiceAccount.LocalSystem;

        serviceInstaller.DisplayName = "MachineVerification";
        serviceInstaller.StartType = ServiceStartMode.Automatic;

        //must be the same as what was set in Program's constructor
        serviceInstaller.ServiceName = "MachineVerification";
        this.Installers.Add(processInstaller);
        this.Installers.Add(serviceInstaller);

サービスのインストールクラスのコンストラクターに。

于 2014-09-14T23:46:26.687 に答える