使用 ManagedInstallerClass 安装 C# 服务
本文关键字:服务 安装 ManagedInstallerClass 使用 | 更新日期: 2023-09-27 18:36:12
我一直在尝试安装此服务,但无济于事。
我目前正在使用InnoSetup,因为老实说,Visual Studio安装程序对我来说并不完全有意义(也是凌晨1点。D:)
我从这个线程中获取了一些代码:Windows 服务的 Inno Setup ?
那里的每个人都说这对他们来说非常有效,但他们并没有完全解释他们做了什么或他们把代码放在哪里。 是控制台应用程序吗? 哪里?
所以,我把它贴在我认为它可能应该去的地方。 当您将安装程序类添加到服务时,会创建一个"Program.cs"类,这就是我放置它的地方。
这是我的"程序.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:
在这里找到我的答案:在 .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);
到服务中安装类的构造函数。