4

我一直在尝试安装此服务,但无济于事。

我目前正在使用 InnoSetup,因为 Visual Studio 安装程序对我来说并不完全有意义,老实说(现在也是凌晨 1 点。D :)

我从这个线程中获取了一些代码:Inno Setup for Windows service?

那里的每个人都说这对他们来说非常有效,但他们并没有完全解释他们做了什么或将代码放在哪里。它是一个控制台应用程序吗?在哪里?

所以,我把它卡在我认为它应该去的地方。当您将安装程序类添加到服务时,会创建一个“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"

帮助?丁:

4

1 回答 1

4

在这里找到我的答案:Self install windows service in .NET c#

对于那些想要点击链接的人,解决方案是添加:

        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 回答