我目前有一个程序可以正确安装为服务,但启动类型设置为"手册"。如何设置此应用程序设置启动类型=自动?
static void Main(string[] args) {
if (System.Environment.UserInteractive) {
if (args.Length > 0) {
switch (args[0]) {
case "/install": {
ManagedInstallerClass.InstallHelper(new string[] { Assembly.GetExecutingAssembly().Location });
break;
}
case "/uninstall": {
ManagedInstallerClass.InstallHelper(new string[] { "/u", Assembly.GetExecutingAssembly().Location });
break;
}
}
}
} else {
if (!Environment.UserInteractive) {
// running as service
using (var service = new DocLogicJMS())
ServiceBase.Run(service);
} else {
// running as console app
Start(args);
Console.WriteLine("Press any key to stop...");
Console.ReadKey(true);
Stop();
}
}
}
JMS是:
namespace JMS {
partial class DocLogicJMS {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.ServiceName = "DocLogic JMS";
}
#endregion
}
}
答案 0 :(得分:0)
这个问题似乎已在这里得到解答: How do I change a Windows Service's startup type in .NET (post-install)?
这似乎是最受欢迎的答案:
var svc = new ServiceController("ServiceNameGoesHere");
ServiceHelper.ChangeStartMode(svc, ServiceStartMode.Automatic);