.Net 3.5
我已经在服务 exe 中内置了使用 -i 功能自行安装的功能。我有一个自定义安装程序类,并且正在使用在此处在线找到的常用技术。该安装程序类基本上有它自己的服务和服务进程安装程序。
这段代码已经运行了很长时间。最后遇到了Win 7 64位机器,它拒绝安装。
基本上,日志显示它正在安装服务并且成功。然后它尝试创建一个事件日志,但失败了
安装阶段发生异常。System.ComponentModel.Win32Exception:指定的服务已经存在
我刚刚从头开始完全重新安装操作系统,我做的第一件事就是尝试安装为服务,这是同样的错误。为什么认为事件日志已经存在?
我已经阅读了所有其他帖子,并且浏览了我的注册表,但我的服务或事件日志中没有任何内容。我拥有完整的管理员权限,当我尝试以管理员身份打开 cmd 时,它甚至不会提示我,据我所知,我是管理员(我可以在我的用户配置文件中看到)。
我什至添加了代码来检查它是否找到了 EventLog 使用System.Diagnostics.EventLog.SourceExists
它确实报告它找到了它,所以我添加了一个调用,System.Diagnostics.EventLog.DeleteEventSource
但这没有帮助。
我什至尝试从 中删除 EventLog 安装程序ServiceInstaller
,但由于其他原因它开始失败。
有任何想法吗?
这是我尝试过的备用安装程序的一些示例代码,我在这里找到了相同的结果:
public partial class Service1Installer : Installer
{
public Service1Installer()
{
InitializeComponent();
ServiceProcessInstaller process = new ServiceProcessInstaller();
process.Account = ServiceAccount.LocalSystem;
ServiceInstaller serviceAdmin = new ServiceInstaller();
serviceAdmin.StartType = ServiceStartMode.Manual;
serviceAdmin.ServiceName = "Service1";
serviceAdmin.DisplayName = "Service1";
serviceAdmin.Description = "Service1";
Installers.Add(serviceAdmin);
Installers.Add(process );
}
}