我一直关注this MSDN article关于编写Windows服务和随附的安装程序的问题。当我尝试添加安装程序项目时,右键单击“设计视图”并选择“添加安装程序”。我收到以下消息:
Service name contains invalid characters, is empty, or is too long
我的服务名称设置为" UploadManagerService"。这并不包含我所知道的任何无效字符,并且低于指定的80个字符限制。
我已经在这里阅读了几篇关于这个问题的文章。 This answer表明这是因为服务名称未在Visual Studio中设置,尽管这是在我的情况下设置的。我也试过setting the service name in the app.config看看是否有任何区别。还有其他一些我可能会遗漏或解决这个问题吗?
答案 0 :(得分:1)
我遇到了这个确切的错误,应该一切都很好。您快速阅读错误消息,将其归咎于它,然后开始检查项目的名称,类的名称,然后...等待片刻:
MSDN tutorial将此步骤命名为:
在“设计”选项卡中,从快捷菜单中选择“属性”。在“属性”窗口中,将ServiceName值更改为MyNewService。
构建服务时,我只是没有遵循教程,所以请记住人们:阅读错误消息并检查它抱怨的每个点!
答案 1 :(得分:0)
我无法理解该名称的问题,但我能够通过几行代码手动编写安装程序来解决问题。
假设您在选择“添加安装程序”后遵循MSDN article并遇到同样的问题:
添加以下代码:
var process = new ServiceProcessInstaller {Account = ServiceAccount.LocalSystem};
var serviceAdmin = new ServiceInstaller
{
StartType = ServiceStartMode.Manual,
ServiceName = "MyServiceName",
DisplayName = "My Service Display Name"
};
Installers.Add(process);
Installers.Add(serviceAdmin);
InitializeComponent();
在此之后,我继续使用MSDN文章中的说明,并能够使用InstallUtil.exe安装该服务。
我仍然没有明白为什么这不起作用,但希望这将有助于其他人解决问题。
答案 2 :(得分:0)
我会考虑看这个:
Create and Package a Windows Service using IsWiX
您可以通过取消使用InstallUtil和使用本机MSI功能来真正简化问题。事实上,您会注意到视频只用了2分钟,一半时间用于创建实际服务。